Hardware access layer for managing the TIMER peripheral. More...
Macros | |
#define | TIMER_MAX_SIZE(id) NRFX_CONCAT_3(TIMER, id, _MAX_SIZE) |
Macro for getting the maximum bit resolution of the specified timer instance. More... | |
#define | TIMER_BIT_WIDTH_MAX(id, bit_width) |
Macro for validating the correctness of the bit width resolution setting. More... | |
#define | NRF_TIMER_IS_BIT_WIDTH_VALID(p_reg, bit_width) |
Macro for checking correctness of bit width configuration for the specified timer. More... | |
#define | NRF_TIMER_CC_CHANNEL_COUNT(id) NRFX_CONCAT_3(TIMER, id, _CC_NUM) |
Macro for getting the number of capture/compare channels available in a given timer instance. More... | |
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 the specified 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 the specified timer task register. More... | |
__STATIC_INLINE void | nrf_timer_event_clear (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for clearing the specified timer event. More... | |
__STATIC_INLINE bool | nrf_timer_event_check (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for retrieving the state of the 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 the specified timer event register. More... | |
__STATIC_INLINE void | nrf_timer_shorts_enable (NRF_TIMER_Type *p_reg, uint32_t mask) |
Function for enabling the specified shortcuts. More... | |
__STATIC_INLINE void | nrf_timer_shorts_disable (NRF_TIMER_Type *p_reg, uint32_t mask) |
Function for disabling the specified shortcuts. More... | |
__STATIC_INLINE void | nrf_timer_int_enable (NRF_TIMER_Type *p_reg, uint32_t mask) |
Function for enabling the specified interrupts. More... | |
__STATIC_INLINE void | nrf_timer_int_disable (NRF_TIMER_Type *p_reg, uint32_t mask) |
Function for disabling the 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_subscribe_set (NRF_TIMER_Type *p_reg, nrf_timer_task_t task, uint8_t channel) |
Function for setting the subscribe configuration for a given TIMER task. More... | |
__STATIC_INLINE void | nrf_timer_subscribe_clear (NRF_TIMER_Type *p_reg, nrf_timer_task_t task) |
Function for clearing the subscribe configuration for a given TIMER task. More... | |
__STATIC_INLINE void | nrf_timer_publish_set (NRF_TIMER_Type *p_reg, nrf_timer_event_t event, uint8_t channel) |
Function for setting the publish configuration for a given TIMER event. More... | |
__STATIC_INLINE void | nrf_timer_publish_clear (NRF_TIMER_Type *p_reg, nrf_timer_event_t event) |
Function for clearing the publish configuration for a given TIMER event. 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 the 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 the specified timer capture task. More... | |
__STATIC_INLINE nrf_timer_event_t | nrf_timer_compare_event_get (uint32_t channel) |
Function for getting the specified timer compare event. More... | |
__STATIC_INLINE nrf_timer_int_mask_t | nrf_timer_compare_int_get (uint32_t channel) |
Function for getting the specified 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 managing the TIMER peripheral.
#define NRF_TIMER_CC_CHANNEL_COUNT | ( | id | ) | NRFX_CONCAT_3(TIMER, id, _CC_NUM) |
Macro for getting the number of capture/compare channels available in a given timer instance.
[in] | id | Index of the specified timer instance. |
#define NRF_TIMER_IS_BIT_WIDTH_VALID | ( | p_reg, | |
bit_width | |||
) |
Macro for checking correctness of bit width configuration for the specified timer.
[in] | p_reg | Timer instance register. |
[in] | bit_width | Bit width resolution value to be checked. |
true | Timer instance supports the specified bit width resolution value. |
false | Timer instance does not support the specified bit width resolution value. |
#define TIMER_BIT_WIDTH_MAX | ( | id, | |
bit_width | |||
) |
Macro for validating the correctness of the bit width resolution setting.
[in] | id | Index of the specified timer instance. |
[in] | bit_width | Bit width resolution value to be checked. |
true | Timer instance supports the specified bit width resolution value. |
false | Timer instance does not support the specified bit width resolution value. |
#define TIMER_MAX_SIZE | ( | id | ) | NRFX_CONCAT_3(TIMER, id, _MAX_SIZE) |
Macro for getting the maximum bit resolution of the specified timer instance.
[in] | id | Index of the specified timer instance. |
Maximum | bit resolution of the specified timer instance. |
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 structure of registers of the peripheral. |
__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 structure of registers of the peripheral. |
[in] | bit_width | Timer bit width. |
__STATIC_INLINE nrf_timer_task_t nrf_timer_capture_task_get | ( | uint32_t | channel | ) |
Function for getting the specified 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 structure of registers of the peripheral. |
[in] | cc_channel | The specified 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 the specified channel.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | cc_channel | The specified 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 the specified 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 the specified 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 the specified timer event register.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | event | The specified event. |
__STATIC_INLINE bool nrf_timer_event_check | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for retrieving the state of the TIMER event.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | event | Event to be checked. |
true | The event has been generated. |
false | The event has not been generated. |
__STATIC_INLINE void nrf_timer_event_clear | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for clearing the specified timer event.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[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 structure of registers of the peripheral. |
__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 structure of registers of the peripheral. |
[in] | frequency | Timer frequency. |
__STATIC_INLINE void nrf_timer_int_disable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | mask | ||
) |
Function for disabling the specified interrupts.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | mask | Mask of interrupts to be disabled. |
__STATIC_INLINE void nrf_timer_int_enable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | mask | ||
) |
Function for enabling the specified interrupts.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | mask | Mask of interrupts to be enabled. |
__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 structure of registers of the peripheral. |
[in] | timer_int | Interrupt to be checked. |
true | The interrupt is enabled. |
false | 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 structure of registers of the peripheral. |
__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 structure of registers of the peripheral. |
[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_publish_clear | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event | ||
) |
Function for clearing the publish configuration for a given TIMER event.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | event | Event for which to clear the configuration. |
__STATIC_INLINE void nrf_timer_publish_set | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_event_t | event, | ||
uint8_t | channel | ||
) |
Function for setting the publish configuration for a given TIMER event.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | event | Event for which to set the configuration. |
[in] | channel | Channel through which to publish the event. |
__STATIC_INLINE void nrf_timer_shorts_disable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | mask | ||
) |
Function for disabling the specified shortcuts.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | mask | Shortcuts to be disabled. |
__STATIC_INLINE void nrf_timer_shorts_enable | ( | NRF_TIMER_Type * | p_reg, |
uint32_t | mask | ||
) |
Function for enabling the specified shortcuts.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | mask | Shortcuts to be enabled. |
__STATIC_INLINE void nrf_timer_subscribe_clear | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_task_t | task | ||
) |
Function for clearing the subscribe configuration for a given TIMER task.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | task | Task for which to clear the configuration. |
__STATIC_INLINE void nrf_timer_subscribe_set | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_task_t | task, | ||
uint8_t | channel | ||
) |
Function for setting the subscribe configuration for a given TIMER task.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | task | Task for which to set the configuration. |
[in] | channel | Channel through which to subscribe events. |
__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 the specified timer task register.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | task | The specified task. |
__STATIC_INLINE void nrf_timer_task_trigger | ( | NRF_TIMER_Type * | p_reg, |
nrf_timer_task_t | task | ||
) |
Function for activating the specified timer task.
[in] | p_reg | Pointer to the structure of registers of the peripheral. |
[in] | task | Task to be activated. |
__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. |