-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindicator.h
More file actions
167 lines (141 loc) · 5.57 KB
/
Copy pathindicator.h
File metadata and controls
167 lines (141 loc) · 5.57 KB
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
//***************************************************************************
//
// Author(s)...: Pashgan http://ChipEnable.Ru
//
// Target(s)...: AVR
//
// Compiler....: ëþáîé
//
// Description.: Äðàéâåð 7-ìè ñåãìåíòíîãî 4-åõ ðàçðÿäíîãî èíäèêàòîðà
//
// Data........: 15.04.10 Ñîçäàí
// Data........: 8.03.13 Äîáàâèë ïîääåðæêó SPI è ïîñåãìåíòíóþ ðàçâåðòêó
//
//***************************************************************************
#ifndef INDICATOR_H
#define INDICATOR_H
#include <string.h>
#include "compilers.h"
#include "spi.h"
/********************** íàñòðîéêè ***************************/
/*êîëè÷åñòâî öèôð èíäèêàòîðà*/
#define IND_AMOUNT_NUM 8
/*çàêîììåíòèðîâàòü, åñëè íå èñïîëüçóåòñÿ ïîäêëþ÷åíèå ïî SPI*/
//#define IND_SPI_CONNECTION
/*çàêîììåíòèðîâàòü, åñëè èñïîëüçóåòñÿ ïîðàçðÿäíàÿ ðàçâåðòêà*/
//#define IND_SCAN_SEGMENT
/*àêòèâíûé óðîâåíü ñåãìåíòà 0 èëè 1*/
#define IND_ACTIVE_LEVEL_SEG 0 //íåãàòèâ
/*àêòèâíûé óðîâåíü ðàçðÿäà 0 èëè 1*/
#define IND_ACTIVE_LEVEL_DIG 1
/*êóäà ïîäêëþ÷åíû ñåãìåíòû èíäèêàòîðà*/
#define IND_PORT_SEG PORTD
#define IND_DDR_SEG DDRD
/*êóäà ïîäêë÷åíû ðàçðÿäû èíäèêàòîðà*/
#define IND_PORT_DIG PORTB
#define IND_DDR_DIG DDRB
/*ê êàêîìó ðåãèñòðó ïîäêëþ÷åíû ñåãìåíòû è ðàçðÿäû
åñëè èñïîëüçóåòñÿ äâà ðåãèñòðà,
òðåòüþ ñòðî÷êó íóæíî çàêîììåíòèðîâàòü*/
#define IND_SHIFT_REG_SEG 2
#define IND_SHIFT_REG_DIG1 1
#define IND_SHIFT_REG_DIG2 0
/*ê êàêèì âûâîäàì ïîäêëþ÷åíû ðàçðÿäû*/
#define IND_NUM1 7
#define IND_NUM2 6
#define IND_NUM3 5
#define IND_NUM4 4
#define IND_NUM5 3
#define IND_NUM6 2
#define IND_NUM7 1
#define IND_NUM8 0
/*åñëè èñïîëüçóåòñÿ òðè ñäâèãîâûõ ðåãèñòðà
íóæíî îïðåäåëèòü âòîðóþ ãðóïïó ðàçðÿäîâ */
#define IND_NUM9 8
#define IND_NUM10 9
#define IND_NUM11 10
#define IND_NUM12 11
#define IND_NUM13 12
#define IND_NUM14 13
#define IND_NUM15 14
#define IND_NUM16 15
/*ê êàêèì âûâîäàì ïîäêëþ÷åíû ñåãìåíòû*/
#define IND_A 0
#define IND_B 1
#define IND_C 2
#define IND_D 3
#define IND_E 4
#define IND_F 5
#define IND_G 6
#define IND_COM 7
/***********************************************************************************
* Function name : IND_Init
* Returns : íåò
* Parameters : íåò
* Purpose : èíèöèàëèçàöèÿ ïîðòîâ ââîäà-âûâîäà, î÷èñòêà áóôåðà èíäèêàòîðà
************************************************************************************/
void IND_Init(void);
/***********************************************************************************
* Function name : IND_Output
* Returns : íåò
* Parameters : value - ÷èñëî äëÿ ïðåîáðàçîâàíèÿ, comma - ïîçèöèÿ òî÷êè íà èíäèêàòîðå
* Purpose : ïðåîáðàçóåò 16-òè ðàçðÿäíîå ÷èñëî, çàïèñûâàåò åãî â áóôåð èíäèêàòîðà
***********************************************************************************/
void IND_Output(uint16_t value, uint8_t comma);
/***********************************************************************************
* Function name : IND_OutputFormat
* Returns : íåò
* Parameters : value - ÷èñëî äëÿ ïðåîáðàçîâàíèÿ,
* comma - ïîçèöèÿ òî÷êè íà èíäèêàòîðå
* position - íà êàêóþ ïîçèöèþ âûâîäèòü ÷èñëî
* amount - ñêîëüêî öèôð âûâîäèòü
* Purpose : ïðåîáðàçóåò 16-òè ðàçðÿäíîå ÷èñëî, çàïèñûâàåò åãî â áóôåð èíäèêàòîðà
***********************************************************************************/
void IND_OutputFormat(uint16_t value, uint8_t comma, uint8_t position, uint8_t amount);
/***********************************************************************************
* Function name : IND_Update
* Returns : íåò
* Parameters : íåò
* Purpose : Âûâîäèò íà èíäèêàòîð ÷èñëî èç áóôåðà.
* Ýòó ôóíêöèþ íóæíî âûçûâàòü èç ïðåðûâàíèÿ òàéìåðà
***********************************************************************************/
void IND_Update(void);
/***********************************************************************************
* Function name : IND_Update
* Returns : íåò
* Parameters : char_string - ñòðîêà ñèìâîëîâ
position - ïîçèöèÿ
comma - òî÷êà
* Purpose : âûâîäèò ñòðîêó ñèìâîëîâ â áóôôåð èíäèêàòîðà
***********************************************************************************/
void IND_OutputFormatChar(char char_string[],uint8_t comma, uint8_t position);
/***********************************************************************************
* Function name : ascii2int
* Returns : êîä ñèìâîëà
* Parameters : âõîäíîé ñèìâîë òàáëèöû
* Purpose : ïðåîáðàçóåò ñèìâîë
***********************************************************************************/
uint8_t ascii2int(uint8_t symbol);
//enum {one=1,two=2,three=3,zero=0,five=5,}tralala;
/***********************************************************************************
* Function name : IND_RunString
* Returns : ----------
* Parameters : ñêîðîñòü
ñòðîêà
êîëè÷åñòâî öèôð
òî÷êà
ïîëîæåíèå
* Purpose : áåãóùàÿ ñòðîêà
***********************************************************************************/
void IND_RunString(char ch_string,uint8_t speed,uint8_t field,uint8_t amount,uint8_t comma);
// âûâîä ìèíóò, ñåêóíä íà äèñïëåé
/**
âûâîä íà èíäèêàòîð ìèíóò è ñåêóíä.
@param âõîä êîë-âî ñåêóíä ñ àöï
@param argument2 explanation
. . .
@return îáíîâëåíèå áóôôåðà èíäèêàòîðà
*/
void IND_Time(uint16_t CurrentTime,uint8_t position);
extern void AddTask (void (*taskfunc)(void), uint16_t taskdelay);
#endif //INDICATOR_H