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
|