-
Notifications
You must be signed in to change notification settings - Fork 1
/
EERTOSHAL.h
49 lines (38 loc) · 1.84 KB
/
EERTOSHAL.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
/***********************************************************
ßÄÎÐÎ RTOS
Àâòîð DI-HALT http://easyelectronics.ru/
***********************************************************/
#ifndef EERTOSHAL_H
#define EERTOSHAL_H
#include <avr\interrupt.h>
#include "avrlibtypes.h"
#define STATUS_REG SREG
#define Interrupt_Flag SREG_I
#define Disable_Interrupt cli()
#define Enable_Interrupt sei()
//Òàéìåð äëÿ ñëóæáû òàéìåðà - òàéìåð 2
//Íàñòðîéêà ñëóæáû òàéìåðà
#define Prescaler 256
#define TimerDivider (F_CPU/Prescaler/1000) // çíà÷åíèå ðåãèñòðà ñðàâíåíèÿ äëÿ ïîëó÷åíèÿ 1 ìèëëèñåêóíäû
#define SERVICE_TIMER_TCCR TCCR2 // Íîìåð òàéìåðà äëÿ ñëóæáû òàéìåðà
#define SERVICE_TIMER_CTC WGM21 // Áèò ðåæèìà ñáðîñà ïî ñðàâíåíèþ
#define SERVICE_TIMER_CS0 CS20 // Áèò 0 íàñòðîéêà ïðåääåëèòåëÿ
#define SERVICE_TIMER_CS1 CS21 // Áèò 1 íàñòðîéêà ïðåääåëèòåëÿ
#define SERVICE_TIMER_CS2 CS22 // Áèò 2 íàñòðîéêà ïðåääåëèòåëÿ
#define SetTimerCTCMode SERVICE_TIMER_TCCR |= (1<<SERVICE_TIMER_CTC)
#if (Prescaler == 64)
#define SetTimerPresclr SERVICE_TIMER_TCCR |= (0<<SERVICE_TIMER_CS2) | (1<<SERVICE_TIMER_CS1) | (1<<SERVICE_TIMER_CS0)
#elif (Prescaler == 256)
#define SetTimerPresclr SERVICE_TIMER_TCCR |= (1<<SERVICE_TIMER_CS2) | (0<<SERVICE_TIMER_CS1) | (0<<SERVICE_TIMER_CS0)
#else
#warning "Prescaller not define!"
#endif
#define SERVICE_TIMER_TCTNT TCNT2 // Ðåãèñòð íà÷àëüíîãî çíà÷åíèÿ ñ÷åò÷èêà
#define SERVICE_TIMER_OCR OCR2 // Ðåãèñòð ñðàâíåíèÿ
#define SERVICE_TIMER_TMISK TIMSK // Ðåãèñòð ìàñêè ïðåðûâàíèé
#define SERVICE_TIMER_OCIE OCIE2 // Áèò ðàçðåøåíèÿ ïðåðûâàíèÿ ïî ñîâïàäåíèþ
#define RTOS_ISR TIMER2_COMP_vect // Ïðåðûâàíèå äëÿ ðàáîòû ÿäðà
#define TaskQueueSize 20 /* Ðàçìåð î÷åðåäè çàäà÷ äèñïåò÷åðà */
#define MainTimerQueueSize 15 /* Ðàçìåð î÷åðåäè ñëóæáû òàéìåðà */
extern void RunRTOS (void);
#endif