summaryrefslogtreecommitdiff
path: root/app/nixie_driver/nixie_driver_process.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/nixie_driver/nixie_driver_process.h')
-rw-r--r--app/nixie_driver/nixie_driver_process.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/nixie_driver/nixie_driver_process.h b/app/nixie_driver/nixie_driver_process.h
new file mode 100644
index 0000000..bc4b4ca
--- /dev/null
+++ b/app/nixie_driver/nixie_driver_process.h
@@ -0,0 +1,62 @@
+#ifndef NIXIE_DRIVER_PROCESS_INCLUDED
+#define NIXIE_DRIVER_PROCESS_INCLUDED
+
+#include <stdint.h>
+#include "FreeRTOS.h"
+#include "queue.h"
+
+// Схема драйвера Никси на трех сдвиговых 8-разрядных регистрах.
+// Первые два регистра для цифр, третий регистр для выбора лампы
+
+#define MAX_TUBES 6
+#define MAX_DIGITS 13//11
+
+// Коды цифр ламп для буфера tube_digit [] Значения 16-разрядные
+#define TUBE_DIGIT_0 8192 //0010 0000 0000 0000
+#define TUBE_DIGIT_1 128 //0000 0000 1000 0000
+#define TUBE_DIGIT_2 64 //0000 0000 0100 0000
+#define TUBE_DIGIT_3 32 //0000 0000 0010 0000
+#define TUBE_DIGIT_4 16 //0000 0000 0001 0000
+#define TUBE_DIGIT_5 8 //0000 0000 0000 1000
+#define TUBE_DIGIT_6 4 //0000 0000 0000 0100
+#define TUBE_DIGIT_7 2 //0000 0000 0000 0010
+#define TUBE_DIGIT_8 32768 //1000 0000 0000 0000
+#define TUBE_DIGIT_9 16384 //0100 0000 0000 0000
+#define TUBE_DIGIT_DP1 1 //0000 0000 0000 0001 любое отличное от остальных число, т.к. точки на лампах управляются от отдельных GPIO
+#define TUBE_DIGIT_DP2 256 //0000 0001 0000 0000 любое отличное от остальных число, т.к. точки на лампах управляются от отдельных GPIO
+#define TUBE_DIGIT_EMPTY 0
+
+#define TUBE_EMPTY_VALUE 0 // Было "10". Число, которое нужно записать в массив
+ // данных на вывод, чтобы получить негорящий
+ // индикатор
+
+// Коды номера лампы для буфера tube_num [ MAX_TUBES ]
+#define TUBE_NUM_6 1
+#define TUBE_NUM_5 256
+#define TUBE_NUM_4 512
+#define TUBE_NUM_3 1024
+#define TUBE_NUM_2 2048
+#define TUBE_NUM_1 4096
+
+// Структура данных на индикацию для передачи целиком всей структуры через
+// очередь ОС
+typedef struct {
+ uint8_t indic_1;
+ uint8_t indic_2;
+ uint8_t indic_3;
+ uint8_t indic_4;
+ uint8_t indic_5;
+ uint8_t indic_6;
+} DataToIndicate_t;
+
+
+void NixieDriver_SendValue ( uint8_t *value_arr );
+
+extern QueueHandle_t queue_new_data;
+
+#define send(X) xQueueSend ( queue_new_data, &X, 0 )
+#define NixieDriver_SendValue2(X) send(X)
+
+void ProcessNixieDriverFromISR ( void );
+
+#endif //NIXIE_DRIVER_PROCESS_INCLUDED