Low level interface to the microsecond ticker of a target. More...
Modules | |
Microsecond Ticker tests | |
Tests to validate the proper implementation of the microsecond ticker. | |
Ticker Hal | |
Low level interface to the ticker of a target. | |
Ticker Tests | |
Tests to validate the proper implementation of a ticker. | |
Functions | |
ticker_irq_handler_type | set_us_ticker_irq_handler (ticker_irq_handler_type ticker_irq_handler) |
Set ticker IRQ handler. More... | |
const ticker_data_t * | get_us_ticker_data (void) |
Get ticker's data. More... | |
void | us_ticker_irq_handler (void) |
The wrapper for ticker_irq_handler, to pass us ticker's data. More... | |
void | us_ticker_init (void) |
Initialize the ticker. More... | |
void | us_ticker_free (void) |
Deinitialize the us ticker. More... | |
uint32_t() | us_ticker_read (void) |
Read the current counter. More... | |
void | us_ticker_set_interrupt (timestamp_t timestamp) |
Set interrupt for specified timestamp. More... | |
void | us_ticker_disable_interrupt (void) |
Disable us ticker interrupt. More... | |
void | us_ticker_clear_interrupt (void) |
Clear us ticker interrupt. More... | |
void | us_ticker_fire_interrupt (void) |
Set pending interrupt that should be fired right away. More... | |
const ticker_info_t * | us_ticker_get_info (void) |
Get frequency and counter bits of this ticker. More... | |
Low level interface to the microsecond ticker of a target.
To permit compile-time optimization, particularly of wait_us, the following macros should be defined by a target's device.h:
US_TICKER_PERIOD_NUM, US_TICKER_PERIOD_DEN: These denote the ratio (numerator, denominator) of the ticker period to a microsecond. For example, an 8MHz ticker would have NUM = 1, DEN = 8; a 1MHz ticker would have NUM = 1, DEN = 1; a 250kHz ticker would have NUM = 4, DEN = 1. Both numerator and denominator must be 16 bits or less.
US_TICKER_MASK: The value mask for the ticker - eg 0x07FFFFFF for a 27-bit ticker.
If any are defined, all 3 must be defined, and the macros are checked for consistency with us_ticker_get_info by test us_ticker_info_test.
const ticker_data_t* get_us_ticker_data | ( | void | ) |
Get ticker's data.
ticker_irq_handler_type set_us_ticker_irq_handler | ( | ticker_irq_handler_type | ticker_irq_handler | ) |
Set ticker IRQ handler.
ticker_irq_handler | IRQ handler to be connected |
void us_ticker_clear_interrupt | ( | void | ) |
void us_ticker_disable_interrupt | ( | void | ) |
void us_ticker_fire_interrupt | ( | void | ) |
void us_ticker_free | ( | void | ) |
Deinitialize the us ticker.
Powerdown the us ticker in preparation for sleep, powerdown, or reset.
After this function is called, no other ticker functions should be called except us_ticker_init(), calling any function other than init is undefined.
Pseudo Code:
const ticker_info_t* us_ticker_get_info | ( | void | ) |
void us_ticker_init | ( | void | ) |
Initialize the ticker.
Initialize or re-initialize the ticker. This resets all the clocking and prescaler registers, along with disabling the compare interrupt.
Pseudo Code:
void us_ticker_irq_handler | ( | void | ) |
The wrapper for ticker_irq_handler, to pass us ticker's data.
uint32_t() us_ticker_read | ( | void | ) |
Read the current counter.
Read the current counter value without performing frequency conversions. If no rollover has occurred, the seconds passed since us_ticker_init() was called can be found by dividing the ticks returned by this function by the frequency returned by us_ticker_get_info.
Pseudo Code:
void us_ticker_set_interrupt | ( | timestamp_t | timestamp | ) |
Set interrupt for specified timestamp.
timestamp | The time in ticks to be set |
Pseudo Code: