nRF5 SDK v12.1.0
Macros | Enumerations | Functions

Hardware access layer for managing the real time counter (RTC). More...

Macros

#define NRF_RTC_CC_CHANNEL_COUNT(id)   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
 
#define RTC_FREQ_TO_PRESCALER(FREQ)   (uint16_t)((RTC_INPUT_FREQ / (FREQ)) - 1)
 Macro for converting expected frequency to prescaler setting. More...
 
#define RTC_WRAP(val)   (val & RTC_COUNTER_COUNTER_Msk)
 
#define RTC_CHANNEL_INT_MASK(ch)   ((uint32_t)NRF_RTC_INT_COMPARE0_MASK << ch)
 
#define RTC_CHANNEL_EVENT_ADDR(ch)   (nrf_rtc_event_t)(NRF_RTC_EVENT_COMPARE_0 + ch * sizeof(uint32_t))
 

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

Detailed Description

Hardware access layer for managing the real time counter (RTC).

Macro Definition Documentation

#define RTC_FREQ_TO_PRESCALER (   FREQ)    (uint16_t)((RTC_INPUT_FREQ / (FREQ)) - 1)

Macro for converting expected frequency to prescaler setting.

Macro for wrapping values to RTC capacity.

#define RTC_INPUT_FREQ   32768

Input frequency of the RTC instance.

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_rtc,
uint32_t  ch 
)

Function for returning the compare value for a channel.

Parameters
[in]p_rtcPointer to the peripheral registers structure.
[in]chChannel.
Returns
COMPARE[ch] value.
__STATIC_INLINE void nrf_rtc_cc_set ( NRF_RTC_Type *  p_rtc,
uint32_t  ch,
uint32_t  cc_val 
)

Function for setting a compare value for a channel.

Parameters
[in]p_rtcPointer to the peripheral registers structure.
[in]chChannel.
[in]cc_valCompare value to set.
__STATIC_INLINE uint32_t nrf_rtc_counter_get ( NRF_RTC_Type *  p_rtc)

Function for returning a counter value.

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

Function for returning the address of an event.

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

Function for clearing an event.

Parameters
[in]p_rtcPointer to the peripheral registers structure.
[in]eventEvent to clear.
__STATIC_INLINE void nrf_rtc_event_disable ( NRF_RTC_Type *  p_rtc,
uint32_t  event 
)

Function for disabling an event.

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

Function for enabling events.

Parameters
[in]p_rtcPointer to the peripheral registers structure.
[in]maskMask of event flags to enable.
__STATIC_INLINE uint32_t nrf_rtc_event_pending ( NRF_RTC_Type *  p_rtc,
nrf_rtc_event_t  event 
)

Function for checking if an event is pending.

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

Function for disabling interrupts.

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

Function for enabling interrupts.

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

Function for returning the status of currently enabled interrupts.

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

Function for checking if interrupts are enabled.

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

Function for setting a prescaler value.

Parameters
[in]p_rtcPointer to the peripheral registers structure.
[in]valValue to set the prescaler to.
__STATIC_INLINE uint32_t nrf_rtc_task_address_get ( NRF_RTC_Type *  p_rtc,
nrf_rtc_task_t  task 
)

Function for returning the address of a task.

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

Function for starting a task.

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

Documentation feedback | Developer Zone | Subscribe | Updated