Timeout driver for event at absolute time
Dependents: demo_TimeoutAbs i2c_lora_slave
Timeout driver for generating event at absolute time, i.e. alarm at 12:00PM instead of alarm in 5 minutes.
This is the same concept as TIMER_ABSTIME in clock_nanosleep().
The purpose is to remove dependency on when attach()
is called, so the event occurs at correct time regardless of any latency in calling attach()
.
This driver doesnt add any functionality over mbed-os library; it only skips the call to ticker_read_us()
in Ticker::setup()
, which just changes a relative time to absolute time.
example use here.
LowPowerTimeoutAbs.h@1:ae6b29794806, 2018-12-07 (annotated)
- Committer:
- Wayne Roberts
- Date:
- Fri Dec 07 17:49:32 2018 -0800
- Revision:
- 1:ae6b29794806
- Parent:
- 0:900163d530ae
ifdef for header multiple inclusion
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wayne Roberts |
0:900163d530ae | 1 | #ifndef MBED_LPABS_H |
Wayne Roberts |
0:900163d530ae | 2 | #define MBED_LPABS_H |
Wayne Roberts |
0:900163d530ae | 3 | |
Wayne Roberts |
0:900163d530ae | 4 | #include "platform/platform.h" |
Wayne Roberts |
0:900163d530ae | 5 | #include "TimeoutAbs.h" |
Wayne Roberts |
0:900163d530ae | 6 | #include "platform/NonCopyable.h" |
Wayne Roberts |
0:900163d530ae | 7 | |
Wayne Roberts |
0:900163d530ae | 8 | #if defined (DEVICE_LPTICKER) || defined(DOXYGEN_ONLY) |
Wayne Roberts |
0:900163d530ae | 9 | |
Wayne Roberts |
0:900163d530ae | 10 | #include "hal/lp_ticker_api.h" |
Wayne Roberts |
0:900163d530ae | 11 | |
Wayne Roberts |
0:900163d530ae | 12 | namespace mbed { |
Wayne Roberts |
0:900163d530ae | 13 | |
Wayne Roberts |
0:900163d530ae | 14 | class LowPowerTimeoutAbs : public TimeoutAbs, private NonCopyable<LowPowerTimeoutAbs> { |
Wayne Roberts |
0:900163d530ae | 15 | |
Wayne Roberts |
0:900163d530ae | 16 | public: |
Wayne Roberts |
0:900163d530ae | 17 | LowPowerTimeoutAbs() : TimeoutAbs(get_lp_ticker_data()) |
Wayne Roberts |
0:900163d530ae | 18 | { |
Wayne Roberts |
0:900163d530ae | 19 | } |
Wayne Roberts |
0:900163d530ae | 20 | |
Wayne Roberts |
0:900163d530ae | 21 | virtual ~LowPowerTimeoutAbs () |
Wayne Roberts |
0:900163d530ae | 22 | { |
Wayne Roberts |
0:900163d530ae | 23 | } |
Wayne Roberts |
0:900163d530ae | 24 | }; |
Wayne Roberts |
0:900163d530ae | 25 | |
Wayne Roberts |
0:900163d530ae | 26 | } // namespace mbed |
Wayne Roberts |
0:900163d530ae | 27 | |
Wayne Roberts |
0:900163d530ae | 28 | #endif |
Wayne Roberts |
0:900163d530ae | 29 | #endif |
Wayne Roberts |
0:900163d530ae | 30 |