TIMER HAL¶
-
group
nrf_timer_hal
Hardware access layer for managing the TIMER peripheral.
Defines
-
TIMER_MAX_SIZE
(id)¶ Macro for getting the maximum bit resolution of the specified timer instance.
- Parameters
id – [in] Index of the specified timer instance.
- Returns Maximum
bit resolution of the specified timer instance.
-
TIMER_BIT_WIDTH_MAX
(id, bit_width)¶ Macro for validating the correctness of the bit width resolution setting.
- Parameters
id – [in] Index of the specified timer instance.
bit_width – [in] Bit width resolution value to be checked.
- Returns true
Timer instance supports the specified bit width resolution value.
- Returns false
Timer instance does not support the specified bit width resolution value.
-
NRF_TIMER_IS_BIT_WIDTH_VALID
(p_reg, bit_width)¶ Macro for checking correctness of bit width configuration for the specified timer.
- Parameters
p_reg – [in] Timer instance register.
bit_width – [in] Bit width resolution value to be checked.
- Returns true
Timer instance supports the specified bit width resolution value.
- Returns false
Timer instance does not support the specified bit width resolution value.
-
NRF_TIMER_CC_CHANNEL_COUNT
(id)¶ Macro for getting the number of capture/compare channels available in a given timer instance.
- Parameters
id – [in] Index of the specified timer instance.
Enums
-
enum
nrf_timer_task_t
¶ Timer tasks.
Values:
-
enumerator
NRF_TIMER_TASK_START
¶ Task for starting the timer.
-
enumerator
NRF_TIMER_TASK_STOP
¶ Task for stopping the timer.
-
enumerator
NRF_TIMER_TASK_COUNT
¶ Task for incrementing the timer (in counter mode).
-
enumerator
NRF_TIMER_TASK_CLEAR
¶ Task for resetting the timer value.
-
enumerator
NRF_TIMER_TASK_SHUTDOWN
¶ Task for powering off the timer.
-
enumerator
NRF_TIMER_TASK_CAPTURE0
¶ Task for capturing the timer value on channel 0.
-
enumerator
NRF_TIMER_TASK_CAPTURE1
¶ Task for capturing the timer value on channel 1.
-
enumerator
NRF_TIMER_TASK_CAPTURE2
¶ Task for capturing the timer value on channel 2.
-
enumerator
NRF_TIMER_TASK_CAPTURE3
¶ Task for capturing the timer value on channel 3.
-
enumerator
NRF_TIMER_TASK_CAPTURE4
¶ Task for capturing the timer value on channel 4.
-
enumerator
NRF_TIMER_TASK_CAPTURE5
¶ Task for capturing the timer value on channel 5.
-
enumerator
NRF_TIMER_TASK_CAPTURE6
¶ Task for capturing the timer value on channel 6.
-
enumerator
NRF_TIMER_TASK_CAPTURE7
¶ Task for capturing the timer value on channel 7.
-
enumerator
-
enum
nrf_timer_event_t
¶ Timer events.
Values:
-
enumerator
NRF_TIMER_EVENT_COMPARE0
¶ Event from compare channel 0.
-
enumerator
NRF_TIMER_EVENT_COMPARE1
¶ Event from compare channel 1.
-
enumerator
NRF_TIMER_EVENT_COMPARE2
¶ Event from compare channel 2.
-
enumerator
NRF_TIMER_EVENT_COMPARE3
¶ Event from compare channel 3.
-
enumerator
NRF_TIMER_EVENT_COMPARE4
¶ Event from compare channel 4.
-
enumerator
NRF_TIMER_EVENT_COMPARE5
¶ Event from compare channel 5.
-
enumerator
NRF_TIMER_EVENT_COMPARE6
¶ Event from compare channel 6.
-
enumerator
NRF_TIMER_EVENT_COMPARE7
¶ Event from compare channel 7.
-
enumerator
-
enum
nrf_timer_short_mask_t
¶ Types of timer shortcuts.
Values:
-
enumerator
NRF_TIMER_SHORT_COMPARE0_STOP_MASK
¶ Shortcut for stopping the timer based on compare 0.
-
enumerator
NRF_TIMER_SHORT_COMPARE1_STOP_MASK
¶ Shortcut for stopping the timer based on compare 1.
-
enumerator
NRF_TIMER_SHORT_COMPARE2_STOP_MASK
¶ Shortcut for stopping the timer based on compare 2.
-
enumerator
NRF_TIMER_SHORT_COMPARE3_STOP_MASK
¶ Shortcut for stopping the timer based on compare 3.
-
enumerator
NRF_TIMER_SHORT_COMPARE4_STOP_MASK
¶ Shortcut for stopping the timer based on compare 4.
-
enumerator
NRF_TIMER_SHORT_COMPARE5_STOP_MASK
¶ Shortcut for stopping the timer based on compare 5.
-
enumerator
NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 0.
-
enumerator
NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 1.
-
enumerator
NRF_TIMER_SHORT_COMPARE2_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 2.
-
enumerator
NRF_TIMER_SHORT_COMPARE3_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 3.
-
enumerator
NRF_TIMER_SHORT_COMPARE4_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 4.
-
enumerator
NRF_TIMER_SHORT_COMPARE5_CLEAR_MASK
¶ Shortcut for clearing the timer based on compare 5.
-
enumerator
-
enum
nrf_timer_mode_t
¶ Timer modes.
Values:
-
enumerator
NRF_TIMER_MODE_TIMER
¶ Timer mode: timer.
-
enumerator
NRF_TIMER_MODE_COUNTER
¶ Timer mode: counter.
-
enumerator
NRF_TIMER_MODE_LOW_POWER_COUNTER
¶ Timer mode: low-power counter.
-
enumerator
-
enum
nrf_timer_bit_width_t
¶ Timer bit width.
Values:
-
enumerator
NRF_TIMER_BIT_WIDTH_8
¶ Timer bit width 8 bit.
-
enumerator
NRF_TIMER_BIT_WIDTH_16
¶ Timer bit width 16 bit.
-
enumerator
NRF_TIMER_BIT_WIDTH_24
¶ Timer bit width 24 bit.
-
enumerator
NRF_TIMER_BIT_WIDTH_32
¶ Timer bit width 32 bit.
-
enumerator
-
enum
nrf_timer_frequency_t
¶ Timer prescalers.
Values:
-
enumerator
NRF_TIMER_FREQ_16MHz
¶ Timer frequency 16 MHz.
-
enumerator
NRF_TIMER_FREQ_8MHz
¶ Timer frequency 8 MHz.
-
enumerator
NRF_TIMER_FREQ_4MHz
¶ Timer frequency 4 MHz.
-
enumerator
NRF_TIMER_FREQ_2MHz
¶ Timer frequency 2 MHz.
-
enumerator
NRF_TIMER_FREQ_1MHz
¶ Timer frequency 1 MHz.
-
enumerator
NRF_TIMER_FREQ_500kHz
¶ Timer frequency 500 kHz.
-
enumerator
NRF_TIMER_FREQ_250kHz
¶ Timer frequency 250 kHz.
-
enumerator
NRF_TIMER_FREQ_125kHz
¶ Timer frequency 125 kHz.
-
enumerator
NRF_TIMER_FREQ_62500Hz
¶ Timer frequency 62500 Hz.
-
enumerator
NRF_TIMER_FREQ_31250Hz
¶ Timer frequency 31250 Hz.
-
enumerator
-
enum
nrf_timer_cc_channel_t
¶ Timer capture/compare channels.
Values:
-
enumerator
NRF_TIMER_CC_CHANNEL0
¶ Timer capture/compare channel 0.
-
enumerator
NRF_TIMER_CC_CHANNEL1
¶ Timer capture/compare channel 1.
-
enumerator
NRF_TIMER_CC_CHANNEL2
¶ Timer capture/compare channel 2.
-
enumerator
NRF_TIMER_CC_CHANNEL3
¶ Timer capture/compare channel 3.
-
enumerator
NRF_TIMER_CC_CHANNEL4
¶ Timer capture/compare channel 4.
-
enumerator
NRF_TIMER_CC_CHANNEL5
¶ Timer capture/compare channel 5.
-
enumerator
-
enum
nrf_timer_int_mask_t
¶ Timer interrupts.
Values:
-
enumerator
NRF_TIMER_INT_COMPARE0_MASK
¶ Timer interrupt from compare event on channel 0.
-
enumerator
NRF_TIMER_INT_COMPARE1_MASK
¶ Timer interrupt from compare event on channel 1.
-
enumerator
NRF_TIMER_INT_COMPARE2_MASK
¶ Timer interrupt from compare event on channel 2.
-
enumerator
NRF_TIMER_INT_COMPARE3_MASK
¶ Timer interrupt from compare event on channel 3.
-
enumerator
NRF_TIMER_INT_COMPARE4_MASK
¶ Timer interrupt from compare event on channel 4.
-
enumerator
NRF_TIMER_INT_COMPARE5_MASK
¶ Timer interrupt from compare event on channel 5.
-
enumerator
Functions
-
NRF_STATIC_INLINE void
nrf_timer_task_trigger
(NRF_TIMER_Type *p_reg, nrf_timer_task_t task)¶ Function for activating the specified timer task.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task to be activated.
-
NRF_STATIC_INLINE uint32_t
nrf_timer_task_address_get
(NRF_TIMER_Type const *p_reg, nrf_timer_task_t task)¶ Function for getting the address of the specified timer task register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] The specified task.
- Returns
Address of the specified task register.
-
NRF_STATIC_INLINE void
nrf_timer_event_clear
(NRF_TIMER_Type *p_reg, nrf_timer_event_t event)¶ Function for clearing the specified timer event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to clear.
-
NRF_STATIC_INLINE bool
nrf_timer_event_check
(NRF_TIMER_Type const *p_reg, nrf_timer_event_t event)¶ Function for retrieving the state of the TIMER event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event to be checked.
- Returns true
The event has been generated.
- Returns false
The event has not been generated.
-
NRF_STATIC_INLINE uint32_t
nrf_timer_event_address_get
(NRF_TIMER_Type const *p_reg, nrf_timer_event_t event)¶ Function for getting the address of the specified timer event register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] The specified event.
- Returns
Address of the specified event register.
-
NRF_STATIC_INLINE void
nrf_timer_shorts_enable
(NRF_TIMER_Type *p_reg, uint32_t mask)¶ Function for enabling the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be enabled.
-
NRF_STATIC_INLINE void
nrf_timer_shorts_disable
(NRF_TIMER_Type *p_reg, uint32_t mask)¶ Function for disabling the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be disabled.
-
NRF_STATIC_INLINE void
nrf_timer_shorts_set
(NRF_TIMER_Type *p_reg, uint32_t mask)¶ Function for setting the specified shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Shortcuts to be set.
-
NRF_STATIC_INLINE void
nrf_timer_int_enable
(NRF_TIMER_Type *p_reg, uint32_t mask)¶ Function for enabling the specified interrupts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be enabled.
-
NRF_STATIC_INLINE void
nrf_timer_int_disable
(NRF_TIMER_Type *p_reg, uint32_t mask)¶ Function for disabling the specified interrupts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be disabled.
-
NRF_STATIC_INLINE uint32_t
nrf_timer_int_enable_check
(NRF_TIMER_Type const *p_reg, uint32_t mask)¶ Function for checking if the specified interrupts are enabled.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be checked.
- Returns
Mask of enabled interrupts.
-
NRF_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.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task for which to set the configuration.
channel – [in] Channel through which to subscribe events.
-
NRF_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.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] Task for which to clear the configuration.
-
NRF_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.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event for which to set the configuration.
channel – [in] Channel through which to publish the event.
-
NRF_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.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] Event for which to clear the configuration.
-
NRF_STATIC_INLINE void
nrf_timer_mode_set
(NRF_TIMER_Type *p_reg, nrf_timer_mode_t mode)¶ Function for setting the timer mode.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mode – [in] Timer mode.
-
NRF_STATIC_INLINE nrf_timer_mode_t
nrf_timer_mode_get
(NRF_TIMER_Type const *p_reg)¶ Function for retrieving the timer mode.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Timer mode.
-
NRF_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.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
bit_width – [in] Timer bit width.
-
NRF_STATIC_INLINE nrf_timer_bit_width_t
nrf_timer_bit_width_get
(NRF_TIMER_Type const *p_reg)¶ Function for retrieving the timer bit width.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Timer bit width.
-
NRF_STATIC_INLINE void
nrf_timer_frequency_set
(NRF_TIMER_Type *p_reg, nrf_timer_frequency_t frequency)¶ Function for setting the timer frequency.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
frequency – [in] Timer frequency.
-
NRF_STATIC_INLINE nrf_timer_frequency_t
nrf_timer_frequency_get
(NRF_TIMER_Type const *p_reg)¶ Function for retrieving the timer frequency.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Timer frequency.
-
NRF_STATIC_INLINE void
nrf_timer_cc_set
(NRF_TIMER_Type *p_reg, nrf_timer_cc_channel_t cc_channel, uint32_t cc_value)¶ Function for setting the capture/compare register for the specified channel.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
cc_channel – [in] The specified capture/compare channel.
cc_value – [in] Value to write to the capture/compare register.
-
NRF_STATIC_INLINE uint32_t
nrf_timer_cc_get
(NRF_TIMER_Type const *p_reg, nrf_timer_cc_channel_t cc_channel)¶ Function for retrieving the capture/compare value for a specified channel.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
cc_channel – [in] The specified capture/compare channel.
- Returns
Value from the specified capture/compare register.
-
NRF_STATIC_INLINE nrf_timer_task_t
nrf_timer_capture_task_get
(uint32_t channel)¶ Function for getting the specified timer capture task.
- Parameters
channel – [in] Capture channel.
- Returns
Capture task.
-
NRF_STATIC_INLINE nrf_timer_event_t
nrf_timer_compare_event_get
(uint32_t channel)¶ Function for getting the specified timer compare event.
- Parameters
channel – [in] Compare channel.
- Returns
Compare event.
-
NRF_STATIC_INLINE nrf_timer_int_mask_t
nrf_timer_compare_int_get
(uint32_t channel)¶ Function for getting the specified timer compare interrupt.
- Parameters
channel – [in] Compare channel.
- Returns
Compare interrupt.
-
NRF_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.
- Parameters
time_us – [in] Time in microseconds.
frequency – [in] Timer frequency.
- Returns
Number of timer ticks.
-
NRF_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.
- Parameters
time_ms – [in] Time in milliseconds.
frequency – [in] Timer frequency.
- Returns
Number of timer ticks.
-
NRF_STATIC_INLINE void
nrf_timer_one_shot_enable
(NRF_TIMER_Type *p_reg, nrf_timer_cc_channel_t cc_channel)¶ Function for enabling one-shot operation for the specified capture/compare channel.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
cc_channel – [in] Capture/compare channel.
-
NRF_STATIC_INLINE void
nrf_timer_one_shot_disable
(NRF_TIMER_Type *p_reg, nrf_timer_cc_channel_t cc_channel)¶ Function for disabling one-shot operation for the specified capture/compare channel.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
cc_channel – [in] Capture/compare channel.
-