RTC HAL

group nrf_rtc_hal

Hardware access layer for managing the Real Time Counter (RTC) peripheral.

Defines

NRF_RTC_CC_CHANNEL_COUNT(id)

Macro for getting the number of compare channels available in a given RTC instance.

NRF_RTC_COUNTER_MAX

Maximum value of the RTC counter.

RTC_INPUT_FREQ

Input frequency of the RTC instance.

RTC_FREQ_TO_PRESCALER(FREQ)

Macro for converting expected frequency to prescaler setting.

RTC_WRAP(val)

Macro for trimming values to the RTC bit width.

RTC_CHANNEL_INT_MASK(ch)

Macro for creating the interrupt bitmask for the specified compare channel.

RTC_CHANNEL_EVENT_ADDR(ch)

Macro for obtaining the compare event for the specified channel.

Enums

enum nrf_rtc_task_t

RTC tasks.

Values:

enumerator NRF_RTC_TASK_START

Start.

enumerator NRF_RTC_TASK_STOP

Stop.

enumerator NRF_RTC_TASK_CLEAR

Clear.

enumerator NRF_RTC_TASK_TRIGGER_OVERFLOW

Trigger overflow.

enumerator NRF_RTC_TASK_CAPTURE_0

Capture the counter value on channel 0.

enumerator NRF_RTC_TASK_CAPTURE_1

Capture the counter value on channel 1.

enumerator NRF_RTC_TASK_CAPTURE_2

Capture the counter value on channel 2.

enumerator NRF_RTC_TASK_CAPTURE_3

Capture the counter value on channel 3.

enum nrf_rtc_event_t

RTC events.

Values:

enumerator NRF_RTC_EVENT_TICK

Tick event.

enumerator NRF_RTC_EVENT_OVERFLOW

Overflow event.

enumerator NRF_RTC_EVENT_COMPARE_0

Compare 0 event.

enumerator NRF_RTC_EVENT_COMPARE_1

Compare 1 event.

enumerator NRF_RTC_EVENT_COMPARE_2

Compare 2 event.

enumerator NRF_RTC_EVENT_COMPARE_3

Compare 3 event.

enum nrf_rtc_int_t

RTC interrupts.

Values:

enumerator NRF_RTC_INT_TICK_MASK

RTC interrupt from tick event.

enumerator NRF_RTC_INT_OVERFLOW_MASK

RTC interrupt from overflow event.

enumerator NRF_RTC_INT_COMPARE0_MASK

RTC interrupt from compare event on channel 0.

enumerator NRF_RTC_INT_COMPARE1_MASK

RTC interrupt from compare event on channel 1.

enumerator NRF_RTC_INT_COMPARE2_MASK

RTC interrupt from compare event on channel 2.

enumerator NRF_RTC_INT_COMPARE3_MASK

RTC interrupt from compare event on channel 3.

Functions

NRF_STATIC_INLINE void nrf_rtc_cc_set(NRF_RTC_Type *p_reg, uint32_t ch, uint32_t cc_val)

Function for setting a compare value for a channel.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • ch[in] Channel.

  • cc_val[in] Compare value to be set.

NRF_STATIC_INLINE uint32_t nrf_rtc_cc_get(NRF_RTC_Type const *p_reg, uint32_t ch)

Function for returning the compare value for a channel.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • ch[in] Channel.

Returns

COMPARE[ch] value.

NRF_STATIC_INLINE void nrf_rtc_int_enable(NRF_RTC_Type *p_reg, uint32_t mask)

Function for enabling interrupts.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Interrupt mask to be enabled.

NRF_STATIC_INLINE void nrf_rtc_int_disable(NRF_RTC_Type *p_reg, uint32_t mask)

Function for disabling interrupts.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Interrupt mask to be disabled.

NRF_STATIC_INLINE uint32_t nrf_rtc_int_enable_check(NRF_RTC_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_rtc_subscribe_set(NRF_RTC_Type *p_reg, nrf_rtc_task_t task, uint8_t channel)

Function for setting the subscribe configuration for a given RTC 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_rtc_subscribe_clear(NRF_RTC_Type *p_reg, nrf_rtc_task_t task)

Function for clearing the subscribe configuration for a given RTC 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_rtc_publish_set(NRF_RTC_Type *p_reg, nrf_rtc_event_t event, uint8_t channel)

Function for setting the publish configuration for a given RTC 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_rtc_publish_clear(NRF_RTC_Type *p_reg, nrf_rtc_event_t event)

Function for clearing the publish configuration for a given RTC 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 bool nrf_rtc_event_check(NRF_RTC_Type const *p_reg, nrf_rtc_event_t event)

Function for retrieving the state of the RTC event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to be checked.

Return values
  • true – The event has been generated.

  • false – The event has not been generated.

NRF_STATIC_INLINE void nrf_rtc_event_clear(NRF_RTC_Type *p_reg, nrf_rtc_event_t event)

Function for clearing an event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to be cleared.

NRF_STATIC_INLINE uint32_t nrf_rtc_counter_get(NRF_RTC_Type const *p_reg)

Function for returning a counter value.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns

Counter value.

NRF_STATIC_INLINE void nrf_rtc_prescaler_set(NRF_RTC_Type *p_reg, uint32_t val)

Function for setting a prescaler value.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • val[in] Value to set the prescaler to.

NRF_STATIC_INLINE uint32_t nrf_rtc_prescaler_get(NRF_RTC_Type const *p_reg)

Function for getting a prescaler value.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns

Prescaler value.

NRF_STATIC_INLINE uint32_t nrf_rtc_event_address_get(NRF_RTC_Type const *p_reg, nrf_rtc_event_t event)

Function for returning the address of an event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Requested event.

Returns

Address of the requested event register.

NRF_STATIC_INLINE uint32_t nrf_rtc_task_address_get(NRF_RTC_Type const *p_reg, nrf_rtc_task_t task)

Function for returning the address of a task.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Requested task.

Returns

Address of the requested task register.

NRF_STATIC_INLINE void nrf_rtc_task_trigger(NRF_RTC_Type *p_reg, nrf_rtc_task_t task)

Function for starting a task.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Requested task.

NRF_STATIC_INLINE void nrf_rtc_event_enable(NRF_RTC_Type *p_reg, uint32_t mask)

Function for enabling events.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of event flags to be enabled.

NRF_STATIC_INLINE void nrf_rtc_event_disable(NRF_RTC_Type *p_reg, uint32_t event)

Function for disabling an event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Requested event.

NRF_STATIC_INLINE nrf_rtc_event_t nrf_rtc_compare_event_get(uint8_t index)

Function for getting the COMPARE event associated with the specified compare channel.

Parameters
  • index[in] Compare channel index.

Returns

Requested COMPARE event.