nRF5 SDK v17.1.0
Macros | Enumerations | Functions
RTC HAL

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

Macros

#define NRF_RTC_CC_CHANNEL_COUNT(id)   NRFX_CONCAT_3(RTC, id, _CC_NUM)
 Macro for getting the number of compare channels available in a given RTC instance.
 
#define RTC_INPUT_FREQ   32768
 Input frequency of the RTC instance.
 
#define RTC_FREQ_TO_PRESCALER(FREQ)   (uint16_t)(((RTC_INPUT_FREQ) / (FREQ)) - 1)
 Macro for converting expected frequency to prescaler setting.
 
#define RTC_WRAP(val)   ((val) & RTC_COUNTER_COUNTER_Msk)
 Macro for trimming values to the RTC bit width.
 
#define RTC_CHANNEL_INT_MASK(ch)   ((uint32_t)(NRF_RTC_INT_COMPARE0_MASK) << (ch))
 Macro for creating the interrupt bitmask for the specified compare channel.
 
#define RTC_CHANNEL_EVENT_ADDR(ch)   (nrf_rtc_event_t)((NRF_RTC_EVENT_COMPARE_0) + (ch) * sizeof(uint32_t))
 Macro for obtaining the compare event for the specified channel.
 

Enumerations

enum  nrf_rtc_task_t {
  NRF_RTC_TASK_START = offsetof(NRF_RTC_Type,TASKS_START),
  NRF_RTC_TASK_STOP = offsetof(NRF_RTC_Type,TASKS_STOP),
  NRF_RTC_TASK_CLEAR = offsetof(NRF_RTC_Type,TASKS_CLEAR),
  NRF_RTC_TASK_TRIGGER_OVERFLOW = offsetof(NRF_RTC_Type,TASKS_TRIGOVRFLW)
}
 RTC tasks. More...
 
enum  nrf_rtc_event_t {
  NRF_RTC_EVENT_TICK = offsetof(NRF_RTC_Type,EVENTS_TICK),
  NRF_RTC_EVENT_OVERFLOW = offsetof(NRF_RTC_Type,EVENTS_OVRFLW),
  NRF_RTC_EVENT_COMPARE_0 = offsetof(NRF_RTC_Type,EVENTS_COMPARE[0]),
  NRF_RTC_EVENT_COMPARE_1 = offsetof(NRF_RTC_Type,EVENTS_COMPARE[1]),
  NRF_RTC_EVENT_COMPARE_2 = offsetof(NRF_RTC_Type,EVENTS_COMPARE[2]),
  NRF_RTC_EVENT_COMPARE_3 = offsetof(NRF_RTC_Type,EVENTS_COMPARE[3])
}
 RTC events. More...
 
enum  nrf_rtc_int_t {
  NRF_RTC_INT_TICK_MASK = RTC_INTENSET_TICK_Msk,
  NRF_RTC_INT_OVERFLOW_MASK = RTC_INTENSET_OVRFLW_Msk,
  NRF_RTC_INT_COMPARE0_MASK = RTC_INTENSET_COMPARE0_Msk,
  NRF_RTC_INT_COMPARE1_MASK = RTC_INTENSET_COMPARE1_Msk,
  NRF_RTC_INT_COMPARE2_MASK = RTC_INTENSET_COMPARE2_Msk,
  NRF_RTC_INT_COMPARE3_MASK = RTC_INTENSET_COMPARE3_Msk
}
 RTC interrupts. More...
 

Functions

__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. More...
 
__STATIC_INLINE uint32_t nrf_rtc_cc_get (NRF_RTC_Type *p_reg, uint32_t ch)
 Function for returning the compare value for a channel. More...
 
__STATIC_INLINE void nrf_rtc_int_enable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for enabling interrupts. More...
 
__STATIC_INLINE void nrf_rtc_int_disable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for disabling interrupts. More...
 
__STATIC_INLINE uint32_t nrf_rtc_int_is_enabled (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for checking if interrupts are enabled. More...
 
__STATIC_INLINE uint32_t nrf_rtc_int_get (NRF_RTC_Type *p_reg)
 Function for returning the status of currently enabled interrupts. More...
 
__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. More...
 
__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. More...
 
__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. More...
 
__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. More...
 
__STATIC_INLINE uint32_t nrf_rtc_event_pending (NRF_RTC_Type *p_reg, nrf_rtc_event_t event)
 Function for checking if an event is pending. More...
 
__STATIC_INLINE void nrf_rtc_event_clear (NRF_RTC_Type *p_reg, nrf_rtc_event_t event)
 Function for clearing an event. More...
 
__STATIC_INLINE uint32_t nrf_rtc_counter_get (NRF_RTC_Type *p_reg)
 Function for returning a counter value. More...
 
__STATIC_INLINE void nrf_rtc_prescaler_set (NRF_RTC_Type *p_reg, uint32_t val)
 Function for setting a prescaler value. More...
 
__STATIC_INLINE uint32_t nrf_rtc_event_address_get (NRF_RTC_Type *p_reg, nrf_rtc_event_t event)
 Function for returning the address of an event. More...
 
__STATIC_INLINE uint32_t nrf_rtc_task_address_get (NRF_RTC_Type *p_reg, nrf_rtc_task_t task)
 Function for returning the address of a task. More...
 
__STATIC_INLINE void nrf_rtc_task_trigger (NRF_RTC_Type *p_reg, nrf_rtc_task_t task)
 Function for starting a task. More...
 
__STATIC_INLINE void nrf_rtc_event_enable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for enabling events. More...
 
__STATIC_INLINE void nrf_rtc_event_disable (NRF_RTC_Type *p_reg, uint32_t event)
 Function for disabling an event. More...
 
__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. More...
 

Detailed Description

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

Enumeration Type Documentation

RTC events.

Enumerator
NRF_RTC_EVENT_TICK 

Tick event.

NRF_RTC_EVENT_OVERFLOW 

Overflow event.

NRF_RTC_EVENT_COMPARE_0 

Compare 0 event.

NRF_RTC_EVENT_COMPARE_1 

Compare 1 event.

NRF_RTC_EVENT_COMPARE_2 

Compare 2 event.

NRF_RTC_EVENT_COMPARE_3 

Compare 3 event.

RTC interrupts.

Enumerator
NRF_RTC_INT_TICK_MASK 

RTC interrupt from tick event.

NRF_RTC_INT_OVERFLOW_MASK 

RTC interrupt from overflow event.

NRF_RTC_INT_COMPARE0_MASK 

RTC interrupt from compare event on channel 0.

NRF_RTC_INT_COMPARE1_MASK 

RTC interrupt from compare event on channel 1.

NRF_RTC_INT_COMPARE2_MASK 

RTC interrupt from compare event on channel 2.

NRF_RTC_INT_COMPARE3_MASK 

RTC interrupt from compare event on channel 3.

RTC tasks.

Enumerator
NRF_RTC_TASK_START 

Start.

NRF_RTC_TASK_STOP 

Stop.

NRF_RTC_TASK_CLEAR 

Clear.

NRF_RTC_TASK_TRIGGER_OVERFLOW 

Trigger overflow.

Function Documentation

__STATIC_INLINE uint32_t nrf_rtc_cc_get ( NRF_RTC_Type *  p_reg,
uint32_t  ch 
)

Function for returning the compare value for a channel.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]chChannel.
Returns
COMPARE[ch] value.
__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
[in]p_regPointer to the structure of registers of the peripheral.
[in]chChannel.
[in]cc_valCompare value to be set.
__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
[in]indexCompare channel index.
Returns
Requested COMPARE event.
__STATIC_INLINE uint32_t nrf_rtc_counter_get ( NRF_RTC_Type *  p_reg)

Function for returning a counter value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Counter value.
__STATIC_INLINE uint32_t nrf_rtc_event_address_get ( NRF_RTC_Type *  p_reg,
nrf_rtc_event_t  event 
)

Function for returning the address of an event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventRequested event.
Returns
Address of the requested event register.
__STATIC_INLINE void nrf_rtc_event_clear ( NRF_RTC_Type *  p_reg,
nrf_rtc_event_t  event 
)

Function for clearing an event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to be cleared.
__STATIC_INLINE void nrf_rtc_event_disable ( NRF_RTC_Type *  p_reg,
uint32_t  event 
)

Function for disabling an event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventRequested event.
__STATIC_INLINE void nrf_rtc_event_enable ( NRF_RTC_Type *  p_reg,
uint32_t  mask 
)

Function for enabling events.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of event flags to be enabled.
__STATIC_INLINE uint32_t nrf_rtc_event_pending ( NRF_RTC_Type *  p_reg,
nrf_rtc_event_t  event 
)

Function for checking if an event is pending.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventAddress of the event.
Returns
Mask of pending events.
__STATIC_INLINE void nrf_rtc_int_disable ( NRF_RTC_Type *  p_reg,
uint32_t  mask 
)

Function for disabling interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskInterrupt mask to be disabled.
__STATIC_INLINE void nrf_rtc_int_enable ( NRF_RTC_Type *  p_reg,
uint32_t  mask 
)

Function for enabling interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskInterrupt mask to be enabled.
__STATIC_INLINE uint32_t nrf_rtc_int_get ( NRF_RTC_Type *  p_reg)

Function for returning the status of currently enabled interrupts.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Value in INTEN register.
__STATIC_INLINE uint32_t nrf_rtc_int_is_enabled ( NRF_RTC_Type *  p_reg,
uint32_t  mask 
)

Function for checking if interrupts are enabled.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupt flags to be checked.
Returns
Mask with enabled interrupts.
__STATIC_INLINE void nrf_rtc_prescaler_set ( NRF_RTC_Type *  p_reg,
uint32_t  val 
)

Function for setting a prescaler value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]valValue to set the prescaler to.
__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
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to clear the configuration.
__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
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to set the configuration.
[in]channelChannel through which to publish the event.
__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
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to clear the configuration.
__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
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to set the configuration.
[in]channelChannel through which to subscribe events.
__STATIC_INLINE uint32_t nrf_rtc_task_address_get ( NRF_RTC_Type *  p_reg,
nrf_rtc_task_t  task 
)

Function for returning the address of a task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskRequested task.
Returns
Address of the requested task register.
__STATIC_INLINE void nrf_rtc_task_trigger ( NRF_RTC_Type *  p_reg,
nrf_rtc_task_t  task 
)

Function for starting a task.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskRequested task.

Documentation feedback | Developer Zone | Subscribe | Updated