summaryrefslogtreecommitdiff
path: root/Libraries/NixieDriver/nixie_driver_process.h
blob: 00f08f5ac5fa8b9128049cafdd16f2ff97cc0b94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#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 );
//uint8_t NixieDriverProcessCheckIsFirstByte (void);
//void NixieDriverCheckDPPins (void); 
//void NixieDriverProcessSendSecondByte (void);

#endif //NIXIE_DRIVER_PROCESS_INCLUDED