MySensors Library & Examples  2.2.0-61-g15351cd
known_timers.h
1 
2 #if defined(ALTSS_USE_TIMER1)
3 #define CONFIG_TIMER_NOPRESCALE() (TIMSK1 = 0, TCCR1A = 0, TCCR1B = (1<<ICNC1) | (1<<CS10))
4 #define CONFIG_TIMER_PRESCALE_8() (TIMSK1 = 0, TCCR1A = 0, TCCR1B = (1<<ICNC1) | (1<<CS11))
5 #define CONFIG_MATCH_NORMAL() (TCCR1A = TCCR1A & ~((1<<COM1A1) | (1<<COM1A0)))
6 #define CONFIG_MATCH_TOGGLE() (TCCR1A = (TCCR1A & ~(1<<COM1A1)) | (1<<COM1A0))
7 #define CONFIG_MATCH_CLEAR() (TCCR1A = (TCCR1A | (1<<COM1A1)) & ~(1<<COM1A0))
8 #define CONFIG_MATCH_SET() (TCCR1A = TCCR1A | ((1<<COM1A1) | (1<<COM1A0)))
9 #define CONFIG_CAPTURE_FALLING_EDGE() (TCCR1B &= ~(1<<ICES1))
10 #define CONFIG_CAPTURE_RISING_EDGE() (TCCR1B |= (1<<ICES1))
11 #define ENABLE_INT_INPUT_CAPTURE() (TIFR1 = (1<<ICF1), TIMSK1 = (1<<ICIE1))
12 #define ENABLE_INT_COMPARE_A() (TIFR1 = (1<<OCF1A), TIMSK1 |= (1<<OCIE1A))
13 #define ENABLE_INT_COMPARE_B() (TIFR1 = (1<<OCF1B), TIMSK1 |= (1<<OCIE1B))
14 #define DISABLE_INT_INPUT_CAPTURE() (TIMSK1 &= ~(1<<ICIE1))
15 #define DISABLE_INT_COMPARE_A() (TIMSK1 &= ~(1<<OCIE1A))
16 #define DISABLE_INT_COMPARE_B() (TIMSK1 &= ~(1<<OCIE1B))
17 #define GET_TIMER_COUNT() (TCNT1)
18 #define GET_INPUT_CAPTURE() (ICR1)
19 #define GET_COMPARE_A() (OCR1A)
20 #define GET_COMPARE_B() (OCR1B)
21 #define SET_COMPARE_A(val) (OCR1A = (val))
22 #define SET_COMPARE_B(val) (OCR1B = (val))
23 #define CAPTURE_INTERRUPT TIMER1_CAPT_vect
24 #define COMPARE_A_INTERRUPT TIMER1_COMPA_vect
25 #define COMPARE_B_INTERRUPT TIMER1_COMPB_vect
26 
27 
28 #elif defined(ALTSS_USE_TIMER3)
29 #define CONFIG_TIMER_NOPRESCALE() (TIMSK3 = 0, TCCR3A = 0, TCCR3B = (1<<ICNC3) | (1<<CS30))
30 #define CONFIG_TIMER_PRESCALE_8() (TIMSK3 = 0, TCCR3A = 0, TCCR3B = (1<<ICNC3) | (1<<CS31))
31 #define CONFIG_MATCH_NORMAL() (TCCR3A = TCCR3A & ~((1<<COM3A1) | (1<<COM3A0)))
32 #define CONFIG_MATCH_TOGGLE() (TCCR3A = (TCCR3A & ~(1<<COM3A1)) | (1<<COM3A0))
33 #define CONFIG_MATCH_CLEAR() (TCCR3A = (TCCR3A | (1<<COM3A1)) & ~(1<<COM3A0))
34 #define CONFIG_MATCH_SET() (TCCR3A = TCCR3A | ((1<<COM3A1) | (1<<COM3A0)))
35 #define CONFIG_CAPTURE_FALLING_EDGE() (TCCR3B &= ~(1<<ICES3))
36 #define CONFIG_CAPTURE_RISING_EDGE() (TCCR3B |= (1<<ICES3))
37 #define ENABLE_INT_INPUT_CAPTURE() (TIFR3 = (1<<ICF3), TIMSK3 = (1<<ICIE3))
38 #define ENABLE_INT_COMPARE_A() (TIFR3 = (1<<OCF3A), TIMSK3 |= (1<<OCIE3A))
39 #define ENABLE_INT_COMPARE_B() (TIFR3 = (1<<OCF3B), TIMSK3 |= (1<<OCIE3B))
40 #define DISABLE_INT_INPUT_CAPTURE() (TIMSK3 &= ~(1<<ICIE3))
41 #define DISABLE_INT_COMPARE_A() (TIMSK3 &= ~(1<<OCIE3A))
42 #define DISABLE_INT_COMPARE_B() (TIMSK3 &= ~(1<<OCIE3B))
43 #define GET_TIMER_COUNT() (TCNT3)
44 #define GET_INPUT_CAPTURE() (ICR3)
45 #define GET_COMPARE_A() (OCR3A)
46 #define GET_COMPARE_B() (OCR3B)
47 #define SET_COMPARE_A(val) (OCR3A = (val))
48 #define SET_COMPARE_B(val) (OCR3B = (val))
49 #define CAPTURE_INTERRUPT TIMER3_CAPT_vect
50 #define COMPARE_A_INTERRUPT TIMER3_COMPA_vect
51 #define COMPARE_B_INTERRUPT TIMER3_COMPB_vect
52 
53 
54 #elif defined(ALTSS_USE_TIMER4)
55 #define CONFIG_TIMER_NOPRESCALE() (TIMSK4 = 0, TCCR4A = 0, TCCR4B = (1<<ICNC4) | (1<<CS40))
56 #define CONFIG_TIMER_PRESCALE_8() (TIMSK4 = 0, TCCR4A = 0, TCCR4B = (1<<ICNC4) | (1<<CS41))
57 #define CONFIG_MATCH_NORMAL() (TCCR4A = TCCR4A & ~((1<<COM4A1) | (1<<COM4A0)))
58 #define CONFIG_MATCH_TOGGLE() (TCCR4A = (TCCR4A & ~(1<<COM4A1)) | (1<<COM4A0))
59 #define CONFIG_MATCH_CLEAR() (TCCR4A = (TCCR4A | (1<<COM4A1)) & ~(1<<COM4A0))
60 #define CONFIG_MATCH_SET() (TCCR4A = TCCR4A | ((1<<COM4A1) | (1<<COM4A0)))
61 #define CONFIG_CAPTURE_FALLING_EDGE() (TCCR4B &= ~(1<<ICES4))
62 #define CONFIG_CAPTURE_RISING_EDGE() (TCCR4B |= (1<<ICES4))
63 #define ENABLE_INT_INPUT_CAPTURE() (TIFR4 = (1<<ICF4), TIMSK4 = (1<<ICIE4))
64 #define ENABLE_INT_COMPARE_A() (TIFR4 = (1<<OCF4A), TIMSK4 |= (1<<OCIE4A))
65 #define ENABLE_INT_COMPARE_B() (TIFR4 = (1<<OCF4B), TIMSK4 |= (1<<OCIE4B))
66 #define DISABLE_INT_INPUT_CAPTURE() (TIMSK4 &= ~(1<<ICIE4))
67 #define DISABLE_INT_COMPARE_A() (TIMSK4 &= ~(1<<OCIE4A))
68 #define DISABLE_INT_COMPARE_B() (TIMSK4 &= ~(1<<OCIE4B))
69 #define GET_TIMER_COUNT() (TCNT4)
70 #define GET_INPUT_CAPTURE() (ICR4)
71 #define GET_COMPARE_A() (OCR4A)
72 #define GET_COMPARE_B() (OCR4B)
73 #define SET_COMPARE_A(val) (OCR4A = (val))
74 #define SET_COMPARE_B(val) (OCR4B = (val))
75 #define CAPTURE_INTERRUPT TIMER4_CAPT_vect
76 #define COMPARE_A_INTERRUPT TIMER4_COMPA_vect
77 #define COMPARE_B_INTERRUPT TIMER4_COMPB_vect
78 
79 
80 #elif defined(ALTSS_USE_TIMER5)
81 #define CONFIG_TIMER_NOPRESCALE() (TIMSK5 = 0, TCCR5A = 0, TCCR5B = (1<<ICNC5) | (1<<CS50))
82 #define CONFIG_TIMER_PRESCALE_8() (TIMSK5 = 0, TCCR5A = 0, TCCR5B = (1<<ICNC5) | (1<<CS51))
83 #define CONFIG_MATCH_NORMAL() (TCCR5A = TCCR5A & ~((1<<COM5A1) | (1<<COM5A0)))
84 #define CONFIG_MATCH_TOGGLE() (TCCR5A = (TCCR5A & ~(1<<COM5A1)) | (1<<COM5A0))
85 #define CONFIG_MATCH_CLEAR() (TCCR5A = (TCCR5A | (1<<COM5A1)) & ~(1<<COM5A0))
86 #define CONFIG_MATCH_SET() (TCCR5A = TCCR5A | ((1<<COM5A1) | (1<<COM5A0)))
87 #define CONFIG_CAPTURE_FALLING_EDGE() (TCCR5B &= ~(1<<ICES5))
88 #define CONFIG_CAPTURE_RISING_EDGE() (TCCR5B |= (1<<ICES5))
89 #define ENABLE_INT_INPUT_CAPTURE() (TIFR5 = (1<<ICF5), TIMSK5 = (1<<ICIE5))
90 #define ENABLE_INT_COMPARE_A() (TIFR5 = (1<<OCF5A), TIMSK5 |= (1<<OCIE5A))
91 #define ENABLE_INT_COMPARE_B() (TIFR5 = (1<<OCF5B), TIMSK5 |= (1<<OCIE5B))
92 #define DISABLE_INT_INPUT_CAPTURE() (TIMSK5 &= ~(1<<ICIE5))
93 #define DISABLE_INT_COMPARE_A() (TIMSK5 &= ~(1<<OCIE5A))
94 #define DISABLE_INT_COMPARE_B() (TIMSK5 &= ~(1<<OCIE5B))
95 #define GET_TIMER_COUNT() (TCNT5)
96 #define GET_INPUT_CAPTURE() (ICR5)
97 #define GET_COMPARE_A() (OCR5A)
98 #define GET_COMPARE_B() (OCR5B)
99 #define SET_COMPARE_A(val) (OCR5A = (val))
100 #define SET_COMPARE_B(val) (OCR5B = (val))
101 #define CAPTURE_INTERRUPT TIMER5_CAPT_vect
102 #define COMPARE_A_INTERRUPT TIMER5_COMPA_vect
103 #define COMPARE_B_INTERRUPT TIMER5_COMPB_vect
104 
105 
106 #endif