23
23
#include < stdbool.h>
24
24
#include " mbed.h"
25
25
26
+ #if MBED_CONF_EVENTS_USE_LOWPOWER_TIMER_TICKER
27
+ #define ALIAS_TIMER LowPowerTimer
28
+ #define ALIAS_TICKER LowPowerTicker
29
+ #define ALIAS_TIMEOUT LowPowerTimeout
30
+ #else
31
+ #define ALIAS_TIMER Timer
32
+ #define ALIAS_TICKER Ticker
33
+ #define ALIAS_TIMEOUT Timeout
34
+ #endif
26
35
27
36
// Ticker operations
28
37
static bool equeue_tick_inited = false ;
29
38
static volatile unsigned equeue_minutes = 0 ;
30
39
static unsigned equeue_timer[
31
- (sizeof (Timer )+sizeof (unsigned )-1 )/sizeof (unsigned )];
40
+ (sizeof (ALIAS_TIMER )+sizeof (unsigned )-1 )/sizeof (unsigned )];
32
41
static unsigned equeue_ticker[
33
- (sizeof (Ticker )+sizeof (unsigned )-1 )/sizeof (unsigned )];
42
+ (sizeof (ALIAS_TICKER )+sizeof (unsigned )-1 )/sizeof (unsigned )];
34
43
35
44
static void equeue_tick_update () {
36
- equeue_minutes += reinterpret_cast <Timer *>(equeue_timer)->read_ms ();
37
- reinterpret_cast <Timer *>(equeue_timer)->reset ();
45
+ equeue_minutes += reinterpret_cast <ALIAS_TIMER *>(equeue_timer)->read_ms ();
46
+ reinterpret_cast <ALIAS_TIMER *>(equeue_timer)->reset ();
38
47
}
39
48
40
49
static void equeue_tick_init () {
41
- MBED_STATIC_ASSERT (sizeof (equeue_timer) >= sizeof (Timer ),
50
+ MBED_STATIC_ASSERT (sizeof (equeue_timer) >= sizeof (ALIAS_TIMER ),
42
51
" The equeue_timer buffer must fit the class Timer" );
43
- MBED_STATIC_ASSERT (sizeof (equeue_ticker) >= sizeof (Ticker ),
52
+ MBED_STATIC_ASSERT (sizeof (equeue_ticker) >= sizeof (ALIAS_TICKER ),
44
53
" The equeue_ticker buffer must fit the class Ticker" );
45
- Timer *timer = new (equeue_timer) Timer ;
46
- Ticker *ticker = new (equeue_ticker) Ticker ;
54
+ ALIAS_TIMER *timer = new (equeue_timer) ALIAS_TIMER ;
55
+ ALIAS_TICKER *ticker = new (equeue_ticker) ALIAS_TICKER ;
47
56
48
57
equeue_minutes = 0 ;
49
58
timer->start ();
@@ -62,7 +71,7 @@ unsigned equeue_tick() {
62
71
63
72
do {
64
73
minutes = equeue_minutes;
65
- ms = reinterpret_cast <Timer *>(equeue_timer)->read_ms ();
74
+ ms = reinterpret_cast <ALIAS_TIMER *>(equeue_timer)->read_ms ();
66
75
} while (minutes != equeue_minutes);
67
76
68
77
return minutes + ms;
@@ -132,7 +141,7 @@ static void equeue_sema_timeout(equeue_sema_t *s) {
132
141
133
142
bool equeue_sema_wait (equeue_sema_t *s, int ms) {
134
143
int signal = 0 ;
135
- Timeout timeout;
144
+ ALIAS_TIMEOUT timeout;
136
145
if (ms == 0 ) {
137
146
return false ;
138
147
} else if (ms > 0 ) {
0 commit comments