-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdisplay.h
101 lines (83 loc) · 2.73 KB
/
display.h
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//----------------------------------------------------------------------------
//Ìîäóëü ïîääåðæêè LED-äèñïëåÿ, çàãîëîâî÷íûé ôàéë
//----------------------------------------------------------------------------
#ifndef DISPLAY_H
#define DISPLAY_H
//----------------------------------------------------------------------------
#include "systimer.h"
#include "sreg.h"
//----------------------------- Êîíñòàíòû: -----------------------------------
#define POINT 0x80 //ôëàã äåöèìàëüíîé òî÷êè
#define AUTO_SCALE 0x80 //ôëàã àâòîìàñøòàáèðîâàíèÿ
//ìàñêè çíàêîìåñò:
#define ROW1POS1 0x01
#define ROW1POS2 0x02
#define ROW1POS3 0x04
#define ROW1POS4 0x08
#define ROW2POS1 0x10
#define ROW2POS2 0x20
#define ROW2POS3 0x40
#define ROW2POS4 0x80
enum PosName_t //èìåíà ïîçèöèé äèñïëåÿ
{
POS_1,
POS_2,
POS_3,
POS_4,
DIGS
};
enum RowName_t //èìåíà ñòðîê äèñïëåÿ
{
ROW_V,
ROW_I,
ROWS
};
enum Blink_t //èìåíà ðåæèìîâ ìèãàíèÿ
{
BLINK_NO = 0x00,
BLINK_V = ROW1POS1 | ROW1POS2 | ROW1POS3 | ROW1POS4,
BLINK_I = ROW2POS1 | ROW2POS2 | ROW2POS3 | ROW2POS4,
BLINK_VI = BLINK_V | BLINK_I,
BLINK_TIM = ROW1POS3 | ROW1POS4 | BLINK_I,
BLINK_NC = ROW2POS4 //äëÿ ìèãàíèÿ òàêàÿ êîìáèíàöèÿ ðàçðÿäîâ íå èñïîëüçóåòñÿ
};
//----------------------------------------------------------------------------
//---------------------------- Êëàññ TDisplay: -------------------------------
//----------------------------------------------------------------------------
class TDisplay
{
private:
char SegDataV[DIGS];
char SegDataI[DIGS];
char Row;
char Pos;
char Conv(char d);
char SetScan(char phase);
Blink_t BlinkEn;
bool BlinkOn;
bool DispOn;
TSreg Sreg;
TSoftTimer *BlinkTimer;
public:
TDisplay(void);
void Execute(void);
bool LedCV; //óïðàâëåíèå ñâåòîäèîäîì CV
bool LedCC; //óïðàâëåíèå ñâåòîäèîäîì CC
bool LedOut; //óïðàâëåíèå ñâåòîäèîäîì OUT
void Blink(Blink_t blink); //âêëþ÷åíèå/âûêëþ÷åíèå ìèãàíèÿ
bool LedFine; //óïðàâëåíèå ñâåòîäèîäîì FINE
void Clear(void); //î÷èñòêà äèñïëåÿ
void Off(void); //îòêëþ÷åíèå äèñïëåÿ (òîëüêî öèôðû)
void On(void); //âêëþ÷åíèå äèñïëåÿ (òîëüêî öèôðû)
void Disable(void); //îòêëþ÷åíèå âñåé èíäèêàöèè
void Enable(void); //âêëþ÷åíèå âñåé èíäèêàöèè
void SetPos(char row, char pos); //óñòàíîâêà ïîçèöèè
void PutChar(char ch); //âûâîä ñèìâîëà
void PutString(char *s); //âûâîä ñòðîêè èç RAM
void PutString(const char *s); //âûâîä ñòðîêè èç ROM
void PutIntF(int32_t v, char n, char d); //ôîðìàòèðîâàííûé âûâîä ÷èñëà
};
//----------------------------------------------------------------------------
extern TDisplay *Display;
//----------------------------------------------------------------------------
#endif