28
28
29
29
using namespace utest ::v1;
30
30
31
- volatile static bool complete;
31
+ static volatile bool complete;
32
+ static volatile timestamp_t complete_timestamp;
32
33
static ticker_event_t delay_event;
33
34
static const ticker_data_t *lp_ticker_data = get_lp_ticker_data();
34
35
@@ -38,6 +39,12 @@ static const ticker_data_t *lp_ticker_data = get_lp_ticker_data();
38
39
#define SHORT_TIMEOUT (600 )
39
40
40
41
void cb_done (uint32_t id) {
42
+ complete_timestamp = us_ticker_read ();
43
+ complete = true ;
44
+ }
45
+
46
+ void cb_done_deepsleep (uint32_t id) {
47
+ complete_timestamp = lp_ticker_read ();
41
48
complete = true ;
42
49
}
43
50
@@ -53,7 +60,7 @@ void lp_ticker_delay_us(uint32_t delay_us, uint32_t tolerance)
53
60
timestamp_t start = us_ticker_read ();
54
61
ticker_insert_event (lp_ticker_data, &delay_event, delay_ts, (uint32_t )&delay_event);
55
62
while (!complete);
56
- timestamp_t end = us_ticker_read () ;
63
+ timestamp_t end = complete_timestamp ;
57
64
58
65
TEST_ASSERT_UINT32_WITHIN (tolerance, delay_us, end - start);
59
66
TEST_ASSERT_TRUE (complete);
@@ -75,7 +82,7 @@ void lp_ticker_1s_deepsleep()
75
82
*/
76
83
wait_ms (10 );
77
84
78
- ticker_set_handler (lp_ticker_data, cb_done );
85
+ ticker_set_handler (lp_ticker_data, cb_done_deepsleep );
79
86
ticker_remove_event (lp_ticker_data, &delay_event);
80
87
delay_ts = lp_ticker_read () + 1000000 ;
81
88
@@ -87,7 +94,7 @@ void lp_ticker_1s_deepsleep()
87
94
ticker_insert_event (lp_ticker_data, &delay_event, delay_ts, (uint32_t )&delay_event);
88
95
deepsleep ();
89
96
while (!complete);
90
- timestamp_t end = lp_ticker_read () ;
97
+ timestamp_t end = complete_timestamp ;
91
98
92
99
TEST_ASSERT_UINT32_WITHIN (LONG_TIMEOUT, 1000000 , end - start);
93
100
TEST_ASSERT_TRUE (complete);
@@ -106,7 +113,7 @@ void lp_ticker_1s_sleep()
106
113
ticker_insert_event (lp_ticker_data, &delay_event, delay_ts, (uint32_t )&delay_event);
107
114
sleep ();
108
115
while (!complete);
109
- timestamp_t end = us_ticker_read () ;
116
+ timestamp_t end = complete_timestamp ;
110
117
111
118
TEST_ASSERT_UINT32_WITHIN (LONG_TIMEOUT, 1000000 , end - start);
112
119
TEST_ASSERT_TRUE (complete);
0 commit comments