-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.c
More file actions
75 lines (73 loc) · 2.23 KB
/
Copy pathmain.c
File metadata and controls
75 lines (73 loc) · 2.23 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
/***òàéìåð-êîíòðîëëåð***/
//#include <boost/lambda/lambda.hpp>
#include <avr/io.h>
#include <avr/interrupt.h>
//#include <avrlib/encoder.h>
//#include <util/delay.h> //ÊÝÏ
#include "macros.h" //îïèñàíèå ôëàãîâ è ðàáîòà ñ áèòàìè
#include "kbd.h" //ðàáîòà ñ êëàâèàòóðîé
#include "adc.h" //ðàáîòà ñ ÀÖÏ
#include "indicator.h" // ðàáîòà ñ ñåìèñåãìåíòíèêàìè
#include "spi.h" // ïîñëåäîâàòåëüíûé èíòåðôåéñ
#include "automate.h" // ôàéë êîíå÷íîãî àâòîìàòà , ñêîðî íàâåðíîå áóäåò íå íóæåí
#include "timer.h" // ôàéë òàéìåðîâ
#include "compilers.h" //îòêóäàòî çà÷åìòî îòêðó÷åíî , ñ ÷èïýíàáëà ìàêðîñ ïîä ðàçíûå êîìïèëÿòîðû
#include "sheduler/dispatch.h" //äèñïåò÷åð
//test
// TODO: êîñÿê ñ ïàøãàíîâñêèì äðàéâåðîì â æåëåçå , ðàññìîòðåòü ÷àñòîòó îáíîâëåíèÿ áóôôåðà
//TODO: îñòàëîñü âðîäå òîëüêî òàéìåð äîïèëèòü íó è îñíîâíûå ôóíêöèè
//+àöï
//òàéìåð
//+äèñïåò÷åð
//+êíîïêè
//ôóíêöèè àâòîìàòà
uint16_t TimeStop=0;
uint16_t TimeSupply=0;
uint16_t CurrentTime=0;
int KeyCurrentCode;
extern void doubleCountdown();
//template <typename AnyType>;
//const AnyType Sum(const AnyType &a, const AnyType &b,const AnyType &c)
//{
// return a + b + c ;
//}
//Êîñòûëè :(
//extern void FuncINDTime();
/***Ãëàâíàÿ ôóíêöèÿ***/
int main (void)
{
InitTimer();
InitADC();
InitScheduler();
IND_Init();
InitControl();
// ôëàãè íóæíû äëÿ ôëàãîâîãî àâòîìàòà , ñêîðî îíè áóäóò íå íóæíû èëè íå âñå
flags.KeyPin=0;
flags.KeyPushLong=0;
flags.KeyState=0;
flags.KeyPressed = 0;
flags.KeyReleased = 1;
flags.State_Automate=0;
flags.SupplyAuto=0;
flags.SupplyManual=0;
flags.Furnace=0; //(C,5)
flags.NextState=0;
flags.RunFlag=1;
flags.TimerFlag=0;
// çàäà÷è äèñïåò÷åðà
AddTask(IND_Update,1); // òóò äîïèëèòü , óâåëè÷èòü ÷àñòîòó òàéìåðà äèñïåò÷åðà , ÷òîáû öèôðû íå äðîæàëè
AddTask(KeyScan,25);
AddTask(FuncINDTime,250);
AddTask(StateAutomate,50);
AddTask(doubleCountdown,100);
sei();
while(1){
/*//ïîïûòêà çàïóñêà èçâðàùåí÷åñêîé ïåðåêëþ÷àëêè ïî ôëàãó ïåðåïîëíåíèÿ òàéìåðà
if (!(TIFR&(1<<TOV1))){
AddTask(doubleCountdown,5);
// (TIFR |= (1<<TOV1));
// (TIFR&= ~(1<<TOV1));
} //*/
DispatchTask();
}return 0;
}