#ifndef NIXIE_DRIVER_PROCESS_INCLUDED #define NIXIE_DRIVER_PROCESS_INCLUDED #include #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 ); //uint8_t NixieDriverProcessCheckIsFirstByte (void); //void NixieDriverCheckDPPins (void); //void NixieDriverProcessSendSecondByte (void); #endif //NIXIE_DRIVER_PROCESS_INCLUDED