20 #ifndef MBED_TICKER_API_H 21 #define MBED_TICKER_API_H 49 typedef void (*ticker_event_handler)(uint32_t
id);
63 uint32_t (*read)(void);
64 void (*disable_interrupt)(void);
65 void (*clear_interrupt)(void);
67 void (*fire_interrupt)(void);
uint64_t tick_remainder
Ticks that have not been added to base_time.
void ticker_insert_event_us(const ticker_data_t *const ticker, ticker_event_t *obj, us_timestamp_t timestamp, uint32_t id)
Insert an event to the queue.
uint32_t tick_last_read
Last tick read.
void ticker_resume(const ticker_data_t *const ticker)
Resume this ticker.
Information about the ticker implementation.
uint32_t id
TimerEvent object.
Ticker's interface structure - required API for a ticker.
ticker_event_t * head
A pointer to head.
ticker_event_queue_t * queue
Ticker's event queue.
uint32_t max_delta
Largest delta in ticks that can be used when scheduling.
bool runs_in_deep_sleep
Whether ticker operates in deep sleep.
int ticker_get_next_timestamp_us(const ticker_data_t *const ticker, us_timestamp_t *timestamp)
Read the next event's timestamp.
uint64_t us_timestamp_t
A us timestamp stored in a 64 bit integer.
us_timestamp_t timestamp
Event's timestamp.
struct ticker_event_s ticker_event_t
Ticker's event structure.
Ticker's data structure.
uint32_t frequency
Frequency in Hz this ticker runs at.
uint32_t frequency
Frequency of the timer in Hz.
struct ticker_event_s * next
Next event in the queue.
Ticker's event queue structure.
us_timestamp_t present_time
Store the timestamp used for present time.
uint8_t frequency_shifts
If frequency is a value of 2^n, this is n, otherwise 0.
Ticker's event structure.
uint32_t bitmask
Mask to be applied to time values read.
uint32_t bits
Number of bits this ticker supports.
timestamp_t ticker_read(const ticker_data_t *const ticker)
Read the current (relative) ticker's timestamp.
const ticker_interface_t * interface
Ticker's interface.
void ticker_irq_handler(const ticker_data_t *const ticker)
IRQ handler that goes through the events to trigger overdue events.
bool dispatching
The function ticker_irq_handler is dispatching.
us_timestamp_t ticker_read_us(const ticker_data_t *const ticker)
Read the current (absolute) ticker's timestamp.
int ticker_get_next_timestamp(const ticker_data_t *const ticker, timestamp_t *timestamp)
Read the next event's timestamp.
void ticker_insert_event(const ticker_data_t *const ticker, ticker_event_t *obj, timestamp_t timestamp, uint32_t id)
Insert an event to the queue.
bool initialized
Indicate if the instance is initialized.
uint32_t timestamp_t
Legacy format representing a timestamp in us.
bool suspended
Indicate if the instance is suspended.
void ticker_remove_event(const ticker_data_t *const ticker, ticker_event_t *obj)
Remove an event from the queue.
ticker_event_handler event_handler
Event handler.
void ticker_suspend(const ticker_data_t *const ticker)
Suspend this ticker.
uint64_t max_delta_us
Largest delta in us that can be used when scheduling.
void ticker_set_handler(const ticker_data_t *const ticker, ticker_event_handler handler)
Initialize a ticker and set the event handler.