STC15W408AS library
0.15.0
Loading...
Searching...
No Matches
include
timer2_mode0.h
Go to the documentation of this file.
1
#ifndef STC15_TIMER2_MODE0H
2
#define STC15_TIMER2_MODE0H
3
27
#include <
sys.h
>
28
#include <bits.h>
29
#include <
interrupt.h
>
30
31
#include <stdint.h>
32
#include <stdbool.h>
33
34
#include <timer_structs.h>
35
40
48
#define timer2_mode0_12T_init() \
49
do { \
50
enable_mcu_interrupts(); \
51
enable_timer2_interrupt(); \
52
AUXR &= 0xE2; \
53
} while(0)
54
63
#define timer2_mode0_1T_init() \
64
do { \
65
enable_mcu_interrupts(); \
66
enable_timer2_interrupt(); \
67
AUXR &= 0xE2; \
68
AUXR |= 0x05; \
69
} while(0)
71
76
83
#define timer2_mode0_enable_P30_output() (bit_set(INT_CLKO, SBIT2))
84
90
#define timer2_mode0_disable_P30_output() (bit_clr(INT_CLKO, CBIT2))
91
99
#define is_timer2_mode0_P30_output_enabled() (test_if_bit_set(INT_CLKO, SBIT2))
100
102
107
127
#define timer2_mode0_start(ticks) \
128
do { \
129
timer2_mode0_reload(ticks); \
130
\
131
bit_set(AUXR, SBIT4); \
132
} while(0)
133
153
#define timer2_mode0_direct_start(th0, tl0) \
154
do { \
155
timer2_mode0_direct_reload(th0, tl0); \
156
\
157
bit_set(AUXR, SBIT4); \
158
} while(0)
159
166
#define timer2_mode0_stop() { \
167
bit_clr(AUXR, CBIT4);
/* clear T2 run flag */
\
168
}
169
177
#define is_timer2_mode0_started() (test_if_bit_set(AUXR, SBIT4))
178
188
#define timer2_mode0_reload(ticks) \
189
do { \
190
uint16_t value = 0xffff - ticks; \
191
T2L = value & 0xff; \
192
T2H = (value >> 8) & 0xff; \
193
} while(0)
194
204
#define timer2_mode0_direct_reload(th2, tl2) \
205
do { \
206
T2H = th2; \
207
T2L = tl2; \
208
} while(0)
209
211
212
#endif
interrupt.h
sys.h
Generated by
1.9.8