7
7
hw_timer_t * timer = NULL ;
8
8
static volatile bool alarm_flag;
9
9
10
+ /* These functions are intended to be called before and after each test. */
11
+ void setUp (void ) {
12
+ timer = timerBegin (0 , TIMER_DIVIDER, true );
13
+ timerStop (timer);
14
+ timerRestart (timer);
15
+ }
16
+
17
+ void tearDown (void ){
18
+ timerEnd (timer);
19
+ }
20
+
21
+
22
+
10
23
void ARDUINO_ISR_ATTR onTimer (){
11
- // Serial.println("Timer ISR triggered");
12
24
alarm_flag = true ;
13
25
}
14
26
15
27
16
28
void timer_interrupt_test (void ){
17
-
18
- timer = timerBegin (0 , TIMER_DIVIDER, true );
19
- timerStop (timer);
20
- timerRestart (timer);
21
-
29
+
22
30
alarm_flag = false ;
23
31
timerAttachInterrupt (timer, &onTimer, true );
24
32
timerAlarmWrite (timer, (1.2 * TIMER_SCALE), true );
@@ -37,19 +45,13 @@ void timer_interrupt_test(void){
37
45
38
46
delay (2000 );
39
47
TEST_ASSERT_EQUAL (false , alarm_flag);
40
-
41
- timerEnd (timer);
42
-
43
48
}
44
49
45
50
void timer_divider_test (void ){
46
51
47
52
uint64_t time_val;
48
53
uint64_t comp_time_val;
49
54
50
- timer = timerBegin (0 , TIMER_DIVIDER, true );
51
- timerStop (timer);
52
- timerRestart (timer);
53
55
timerStart (timer);
54
56
55
57
delay (1000 );
@@ -76,24 +78,17 @@ void timer_divider_test(void){
76
78
comp_time_val = timerRead (timer);
77
79
TEST_ASSERT_INT_WITHIN (5000 , 5000000 , time_val);
78
80
TEST_ASSERT_INT_WITHIN (3126 , 312500 , comp_time_val);
79
-
80
- timerEnd (timer);
81
81
}
82
82
83
83
void timer_read_test (void ){
84
84
85
85
uint64_t set_timer_val = 0xFF ;
86
86
uint64_t get_timer_val = 0 ;
87
87
88
- timer = timerBegin (0 , TIMER_DIVIDER, true );
89
- timerStop (timer);
90
-
91
88
timerWrite (timer,set_timer_val);
92
89
get_timer_val = timerRead (timer);
93
90
94
91
TEST_ASSERT_EQUAL (set_timer_val, get_timer_val);
95
-
96
- timerEnd (timer);
97
92
}
98
93
99
94
void setup (){
0 commit comments