Hardware access layer for accessing the timer peripheral. More...
Macros | |
#define | TIMER_MAX_SIZE(id) CONCAT_3(TIMER, id, _MAX_SIZE) |
Macro for validating the correctness of the BIT_WIDTH setting. | |
#define | TIMER_BIT_WIDTH_MAX(id, bit_width) |
#define | NRF_TIMER_IS_BIT_WIDTH_VALID(p_reg, bit_width) |
#define | NRF_TIMER_CC_CHANNEL_COUNT(id) CONCAT_3(TIMER, id, _CC_NUM) |
Macro for getting the number of capture/compare channels available in a given timer instance. | |
Enumerations | |
enum | nrf_timer_task_t { NRF_TIMER_TASK_START = offsetof(NRF_TIMER_Type, TASKS_START), NRF_TIMER_TASK_STOP = offsetof(NRF_TIMER_Type, TASKS_STOP), NRF_TIMER_TASK_COUNT = offsetof(NRF_TIMER_Type, TASKS_COUNT), NRF_TIMER_TASK_CLEAR = offsetof(NRF_TIMER_Type, TASKS_CLEAR), NRF_TIMER_TASK_SHUTDOWN = offsetof(NRF_TIMER_Type, TASKS_SHUTDOWN), NRF_TIMER_TASK_CAPTURE0 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[0]), NRF_TIMER_TASK_CAPTURE1 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[1]), NRF_TIMER_TASK_CAPTURE2 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[2]), NRF_TIMER_TASK_CAPTURE3 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[3]), NRF_TIMER_TASK_CAPTURE4 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[4]), NRF_TIMER_TASK_CAPTURE5 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[5]) } |
Timer tasks. More... | |
enum | nrf_timer_event_t { NRF_TIMER_EVENT_COMPARE0 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[0]), NRF_TIMER_EVENT_COMPARE1 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[1]), NRF_TIMER_EVENT_COMPARE2 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[2]), NRF_TIMER_EVENT_COMPARE3 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[3]), NRF_TIMER_EVENT_COMPARE4 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[4]), NRF_TIMER_EVENT_COMPARE5 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[5]) } |
Timer events. More... | |
enum | nrf_timer_short_mask_t { NRF_TIMER_SHORT_COMPARE0_STOP_MASK = TIMER_SHORTS_COMPARE0_STOP_Msk, NRF_TIMER_SHORT_COMPARE1_STOP_MASK = TIMER_SHORTS_COMPARE1_STOP_Msk, NRF_TIMER_SHORT_COMPARE2_STOP_MASK = TIMER_SHORTS_COMPARE2_STOP_Msk, NRF_TIMER_SHORT_COMPARE3_STOP_MASK = TIMER_SHORTS_COMPARE3_STOP_Msk, NRF_TIMER_SHORT_COMPARE4_STOP_MASK = TIMER_SHORTS_COMPARE4_STOP_Msk, NRF_TIMER_SHORT_COMPARE5_STOP_MASK = TIMER_SHORTS_COMPARE5_STOP_Msk, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK = TIMER_SHORTS_COMPARE0_CLEAR_Msk, NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK = TIMER_SHORTS_COMPARE1_CLEAR_Msk, NRF_TIMER_SHORT_COMPARE2_CLEAR_MASK = TIMER_SHORTS_COMPARE2_CLEAR_Msk, NRF_TIMER_SHORT_COMPARE3_CLEAR_MASK = TIMER_SHORTS_COMPARE3_CLEAR_Msk, NRF_TIMER_SHORT_COMPARE4_CLEAR_MASK = TIMER_SHORTS_COMPARE4_CLEAR_Msk, NRF_TIMER_SHORT_COMPARE5_CLEAR_MASK = TIMER_SHORTS_COMPARE5_CLEAR_Msk } |
Types of timer shortcuts. More... | |
enum | nrf_timer_mode_t { NRF_TIMER_MODE_TIMER = TIMER_MODE_MODE_Timer, NRF_TIMER_MODE_COUNTER = TIMER_MODE_MODE_Counter, NRF_TIMER_MODE_LOW_POWER_COUNTER = TIMER_MODE_MODE_LowPowerCounter } |
Timer modes. More... | |
enum | nrf_timer_bit_width_t { NRF_TIMER_BIT_WIDTH_8 = TIMER_BITMODE_BITMODE_08Bit, NRF_TIMER_BIT_WIDTH_16 = TIMER_BITMODE_BITMODE_16Bit, NRF_TIMER_BIT_WIDTH_24 = TIMER_BITMODE_BITMODE_24Bit, NRF_TIMER_BIT_WIDTH_32 = TIMER_BITMODE_BITMODE_32Bit } |
Timer bit width. More... | |
enum | nrf_timer_frequency_t { NRF_TIMER_FREQ_16MHz = 0, NRF_TIMER_FREQ_8MHz, NRF_TIMER_FREQ_4MHz, NRF_TIMER_FREQ_2MHz, NRF_TIMER_FREQ_1MHz, NRF_TIMER_FREQ_500kHz, NRF_TIMER_FREQ_250kHz, NRF_TIMER_FREQ_125kHz, NRF_TIMER_FREQ_62500Hz, NRF_TIMER_FREQ_31250Hz } |
Timer prescalers. More... | |
enum | nrf_timer_cc_channel_t { NRF_TIMER_CC_CHANNEL0 = 0, NRF_TIMER_CC_CHANNEL1, NRF_TIMER_CC_CHANNEL2, NRF_TIMER_CC_CHANNEL3, NRF_TIMER_CC_CHANNEL4, NRF_TIMER_CC_CHANNEL5 } |
Timer capture/compare channels. More... | |
enum | nrf_timer_int_mask_t { NRF_TIMER_INT_COMPARE0_MASK = TIMER_INTENSET_COMPARE0_Msk, NRF_TIMER_INT_COMPARE1_MASK = TIMER_INTENSET_COMPARE1_Msk, NRF_TIMER_INT_COMPARE2_MASK = TIMER_INTENSET_COMPARE2_Msk, NRF_TIMER_INT_COMPARE3_MASK = TIMER_INTENSET_COMPARE3_Msk, NRF_TIMER_INT_COMPARE4_MASK = TIMER_INTENSET_COMPARE4_Msk, NRF_TIMER_INT_COMPARE5_MASK = TIMER_INTENSET_COMPARE5_Msk } |
Timer interrupts. More... | |
Functions | |
__STATIC_INLINE void | nrf_timer_task_trigger (NRF_TIMER_Type *p_reg, nrf_timer_task_t task) |
Function for activating a specific timer task. More... | |
__STATIC_INLINE uint32_t * | nrf_timer_task_address_get (NRF_TIMER_Type *p_reg, nrf_timer_task_t task) |
Function for getting the address of a specific timer task register. More... | |
__STATIC_INLINE void | nrf_timer_event_clear (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for clearing a specific timer event. More... | |
__STATIC_INLINE bool | nrf_timer_event_check (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for checking the state of a specific timer event. More... | |
__STATIC_INLINE uint32_t * | nrf_timer_event_address_get (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for getting the address of a specific timer event register. More... | |
__STATIC_INLINE void | nrf_timer_shorts_enable (NRF_TIMER_Type *p_reg, uint32_t timer_shorts_mask) |
Function for enabling specified shortcuts. More... | |
__STATIC_INLINE void | nrf_timer_shorts_disable (NRF_TIMER_Type *p_reg, uint32_t timer_shorts_mask) |
Function for disabling specified shortcuts. More... | |
__STATIC_INLINE void | nrf_timer_int_enable (NRF_TIMER_Type *p_reg, uint32_t timer_int_mask) |
Function for enabling specified interrupts. More... | |
__STATIC_INLINE void | nrf_timer_int_disable (NRF_TIMER_Type *p_reg, uint32_t timer_int_mask) |
Function for disabling specified interrupts. More... | |
__STATIC_INLINE bool | nrf_timer_int_enable_check (NRF_TIMER_Type *p_reg, uint32_t timer_int) |
Function for retrieving the state of a given interrupt. More... | |
__STATIC_INLINE void | nrf_timer_mode_set (NRF_TIMER_Type *p_reg, nrf_timer_mode_t mode) |
Function for setting the timer mode. More... | |
__STATIC_INLINE nrf_timer_mode_t | nrf_timer_mode_get (NRF_TIMER_Type *p_reg) |
Function for retrieving the timer mode. More... | |
__STATIC_INLINE void | nrf_timer_bit_width_set (NRF_TIMER_Type *p_reg, nrf_timer_bit_width_t bit_width) |
Function for setting the timer bit width. More... | |
__STATIC_INLINE nrf_timer_bit_width_t | nrf_timer_bit_width_get (NRF_TIMER_Type *p_reg) |
Function for retrieving the timer bit width. More... | |
__STATIC_INLINE void | nrf_timer_frequency_set (NRF_TIMER_Type *p_reg, nrf_timer_frequency_t frequency) |
Function for setting the timer frequency. More... | |
__STATIC_INLINE nrf_timer_frequency_t | nrf_timer_frequency_get (NRF_TIMER_Type *p_reg) |
Function for retrieving the timer frequency. More... | |
__STATIC_INLINE void | nrf_timer_cc_write (NRF_TIMER_Type *p_reg, nrf_timer_cc_channel_t cc_channel, uint32_t cc_value) |
Function for writing the capture/compare register for a specified channel. More... | |
__STATIC_INLINE uint32_t | nrf_timer_cc_read (NRF_TIMER_Type *p_reg, nrf_timer_cc_channel_t cc_channel) |
Function for retrieving the capture/compare value for a specified channel. More... | |
__STATIC_INLINE nrf_timer_task_t | nrf_timer_capture_task_get (uint32_t channel) |
Function for getting a specific timer capture task. More... | |
__STATIC_INLINE nrf_timer_event_t | nrf_timer_compare_event_get (uint32_t channel) |
Function for getting a specific timer compare event. More... | |
__STATIC_INLINE nrf_timer_int_mask_t | nrf_timer_compare_int_get (uint32_t channel) |
Function for getting a specific timer compare interrupt. More... | |
__STATIC_INLINE uint32_t | nrf_timer_us_to_ticks (uint32_t time_us, nrf_timer_frequency_t frequency) |
Function for calculating the number of timer ticks for a given time (in microseconds) and timer frequency. More... | |
__STATIC_INLINE uint32_t | nrf_timer_ms_to_ticks (uint32_t time_ms, nrf_timer_frequency_t frequency) |
Function for calculating the number of timer ticks for a given time (in milliseconds) and timer frequency. More... | |
Hardware access layer for accessing the timer peripheral.
#define NRF_TIMER_IS_BIT_WIDTH_VALID | ( | p_reg, | |
bit_width | |||
) |
#define TIMER_BIT_WIDTH_MAX | ( | id, | |
bit_width | |||
) |
Timer capture/compare channels.
enum nrf_timer_event_t |
Timer events.
Timer prescalers.
enum nrf_timer_int_mask_t |
Timer interrupts.
enum nrf_timer_mode_t |
Types of timer shortcuts.
enum nrf_timer_task_t |
Timer tasks.
__STATIC_INLINE nrf_timer_bit_width_t nrf_timer_bit_width_get | ( | NRF_TIMER_Type * | p_reg | ) |
Function for retrieving the timer bit width.
[in] | p_reg | Pointer to the peripheral registers structure. |
__STATIC_INLINE void nrf_timer_bit_width_set | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_bit_width_t | bit_width | ||
) |
Function for setting the timer bit width.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | bit_width | Timer bit width. |
__STATIC_INLINE nrf_timer_task_t nrf_timer_capture_task_get | ( | uint32_t | channel | ) |
Function for getting a specific timer capture task.
[in] | channel | Capture channel. |
__STATIC_INLINE uint32_t nrf_timer_cc_read | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_cc_channel_t | cc_channel | ||
) |
Function for retrieving the capture/compare value for a specified channel.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | cc_channel | Requested capture/compare channel. |
__STATIC_INLINE void nrf_timer_cc_write | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_cc_channel_t | cc_channel, | ||
uint32_t | cc_value | ||
) |
Function for writing the capture/compare register for a specified channel.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | cc_channel | Requested capture/compare channel. |
[in] | cc_value | Value to write to the capture/compare register. |
__STATIC_INLINE nrf_timer_event_t nrf_timer_compare_event_get | ( | uint32_t | channel | ) |
Function for getting a specific timer compare event.
[in] | channel | Compare channel. |
__STATIC_INLINE nrf_timer_int_mask_t nrf_timer_compare_int_get | ( | uint32_t | channel | ) |
Function for getting a specific timer compare interrupt.
[in] | channel | Compare channel. |
__STATIC_INLINE uint32_t* nrf_timer_event_address_get | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for getting the address of a specific timer event register.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | event | Requested event. |
__STATIC_INLINE bool nrf_timer_event_check | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for checking the state of a specific timer event.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | event | Event to check. |
true | If the event is set. |
false | If the event is not set. |
__STATIC_INLINE void nrf_timer_event_clear | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for clearing a specific timer event.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | event | Event to clear. |
__STATIC_INLINE nrf_timer_frequency_t nrf_timer_frequency_get | ( | NRF_TIMER_Type * | p_reg | ) |
Function for retrieving the timer frequency.
[in] | p_reg | Pointer to the peripheral registers structure. |
__STATIC_INLINE void nrf_timer_frequency_set | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_frequency_t | frequency | ||
) |
Function for setting the timer frequency.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | frequency | Timer frequency. |
__STATIC_INLINE void nrf_timer_int_disable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | timer_int_mask | ||
) |
Function for disabling specified interrupts.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | timer_int_mask | Interrupts to disable. |
__STATIC_INLINE void nrf_timer_int_enable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | timer_int_mask | ||
) |
Function for enabling specified interrupts.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | timer_int_mask | Interrupts to enable. |
__STATIC_INLINE bool nrf_timer_int_enable_check | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | timer_int | ||
) |
Function for retrieving the state of a given interrupt.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | timer_int | Interrupt to check. |
true | If the interrupt is enabled. |
false | If the interrupt is not enabled. |
__STATIC_INLINE nrf_timer_mode_t nrf_timer_mode_get | ( | NRF_TIMER_Type * | p_reg | ) |
Function for retrieving the timer mode.
[in] | p_reg | Pointer to the peripheral registers structure. |
__STATIC_INLINE void nrf_timer_mode_set | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_mode_t | mode | ||
) |
Function for setting the timer mode.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | mode | Timer mode. |
__STATIC_INLINE uint32_t nrf_timer_ms_to_ticks | ( | uint32_t | time_ms, |
nrf_timer_frequency_t | frequency | ||
) |
Function for calculating the number of timer ticks for a given time (in milliseconds) and timer frequency.
[in] | time_ms | Time in milliseconds. |
[in] | frequency | Timer frequency. |
__STATIC_INLINE void nrf_timer_shorts_disable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | timer_shorts_mask | ||
) |
Function for disabling specified shortcuts.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | timer_shorts_mask | Shortcuts to disable. |
__STATIC_INLINE void nrf_timer_shorts_enable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | timer_shorts_mask | ||
) |
Function for enabling specified shortcuts.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | timer_shorts_mask | Shortcuts to enable. |
__STATIC_INLINE uint32_t* nrf_timer_task_address_get | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_task_t | task | ||
) |
Function for getting the address of a specific timer task register.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | task | Requested task. |
__STATIC_INLINE void nrf_timer_task_trigger | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_task_t | task | ||
) |
Function for activating a specific timer task.
[in] | p_reg | Pointer to the peripheral registers structure. |
[in] | task | Task to activate. |
__STATIC_INLINE uint32_t nrf_timer_us_to_ticks | ( | uint32_t | time_us, |
nrf_timer_frequency_t | frequency | ||
) |
Function for calculating the number of timer ticks for a given time (in microseconds) and timer frequency.
[in] | time_us | Time in microseconds. |
[in] | frequency | Timer frequency. |