nrfx 3.3
Macros | Enumerations | Functions
RTC HAL

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

Macros

#define NRF_RTC_INST_GET(idx)   NRFX_CONCAT(NRF_, RTC, idx)
 Macro getting pointer to the structure of registers of the RTC peripheral.
 
#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 NRF_RTC_CC_COUNT_MAX   NRFX_ARRAY_SIZE(((NRF_RTC_Type*)0)->EVENTS_COMPARE)
 Symbol specifying maximum number of available compare channels.
 
#define NRF_RTC_COUNTER_MAX   RTC_COUNTER_COUNTER_Msk
 Maximum value of the RTC counter.
 
#define NRF_RTC_INPUT_FREQ   32768
 Input frequency of the RTC instance.
 
#define NRF_RTC_FREQ_TO_PRESCALER(FREQ)   (uint16_t)(((NRF_RTC_INPUT_FREQ) / (FREQ)) - 1)
 Macro for converting expected frequency to prescaler setting.
 
#define NRF_RTC_WRAP(val)   ((val) & RTC_COUNTER_COUNTER_Msk)
 Macro for trimming values to the RTC bit width.
 
#define NRF_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 NRF_RTC_ALL_CHANNELS_INT_MASK    ((uint32_t)(((1 << NRF_RTC_CC_COUNT_MAX) - 1) << RTC_INTENSET_COMPARE0_Pos))
 Macro for creating the interrupt bitmask for all compare channels.
 
#define NRF_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) ,
  NRF_RTC_TASK_CAPTURE_0 = offsetof(NRF_RTC_Type,TASKS_CAPTURE[0]) ,
  NRF_RTC_TASK_CAPTURE_1 = offsetof(NRF_RTC_Type,TASKS_CAPTURE[1]) ,
  NRF_RTC_TASK_CAPTURE_2 = offsetof(NRF_RTC_Type,TASKS_CAPTURE[2]) ,
  NRF_RTC_TASK_CAPTURE_3 = offsetof(NRF_RTC_Type,TASKS_CAPTURE[3])
}
 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

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.
 
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.
 
NRF_STATIC_INLINE void nrf_rtc_int_enable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for enabling interrupts.
 
NRF_STATIC_INLINE void nrf_rtc_int_disable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for disabling interrupts.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
NRF_STATIC_INLINE void nrf_rtc_event_clear (NRF_RTC_Type *p_reg, nrf_rtc_event_t event)
 Function for clearing an event.
 
NRF_STATIC_INLINE uint32_t nrf_rtc_counter_get (NRF_RTC_Type const *p_reg)
 Function for returning a counter value.
 
NRF_STATIC_INLINE void nrf_rtc_prescaler_set (NRF_RTC_Type *p_reg, uint32_t val)
 Function for setting a prescaler value.
 
NRF_STATIC_INLINE uint32_t nrf_rtc_prescaler_get (NRF_RTC_Type const *p_reg)
 Function for getting a 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.
 
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.
 
NRF_STATIC_INLINE nrf_rtc_task_t nrf_rtc_capture_task_get (uint8_t index)
 Function for getting the CAPTURE task associated with the specified capture channel.
 
NRF_STATIC_INLINE void nrf_rtc_task_trigger (NRF_RTC_Type *p_reg, nrf_rtc_task_t task)
 Function for starting a task.
 
NRF_STATIC_INLINE void nrf_rtc_event_enable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for enabling events.
 
NRF_STATIC_INLINE void nrf_rtc_event_disable (NRF_RTC_Type *p_reg, uint32_t mask)
 Function for disabling an 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.
 

Detailed Description

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

Macro Definition Documentation

◆ NRF_RTC_INST_GET

#define NRF_RTC_INST_GET (   idx)    NRFX_CONCAT(NRF_, RTC, idx)

Macro getting pointer to the structure of registers of the RTC peripheral.

Parameters
[in]idxRTC instance index.
Returns
Pointer to the structure of registers of the RTC peripheral.

Enumeration Type Documentation

◆ nrf_rtc_event_t

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.

◆ nrf_rtc_int_t

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.

◆ nrf_rtc_task_t

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.

NRF_RTC_TASK_CAPTURE_0 

Capture the counter value on channel 0.

NRF_RTC_TASK_CAPTURE_1 

Capture the counter value on channel 1.

NRF_RTC_TASK_CAPTURE_2 

Capture the counter value on channel 2.

NRF_RTC_TASK_CAPTURE_3 

Capture the counter value on channel 3.

Function Documentation

◆ nrf_rtc_capture_task_get()

NRF_STATIC_INLINE nrf_rtc_task_t nrf_rtc_capture_task_get ( uint8_t  index)

Function for getting the CAPTURE task associated with the specified capture channel.

Parameters
[in]indexCapture channel index.
Returns
Requested CAPTURE task.

◆ nrf_rtc_cc_get()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]chChannel.
Returns
COMPARE[ch] value.

◆ nrf_rtc_cc_set()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]chChannel.
[in]cc_valCompare value to be set.

◆ nrf_rtc_compare_event_get()

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
[in]indexCompare channel index.
Returns
Requested COMPARE event.

◆ nrf_rtc_counter_get()

NRF_STATIC_INLINE uint32_t nrf_rtc_counter_get ( NRF_RTC_Type const *  p_reg)

Function for returning a counter value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Counter value.

◆ nrf_rtc_event_address_get()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventRequested event.
Returns
Address of the requested event register.

◆ nrf_rtc_event_check()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent to be checked.
Return values
trueThe event has been generated.
falseThe event has not been generated.

◆ nrf_rtc_event_clear()

NRF_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.

◆ nrf_rtc_event_disable()

NRF_STATIC_INLINE void nrf_rtc_event_disable ( NRF_RTC_Type *  p_reg,
uint32_t  mask 
)

Function for disabling an event.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of event flags to be disabled.

◆ nrf_rtc_event_enable()

NRF_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.

◆ nrf_rtc_int_disable()

NRF_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]maskMask of interrupts to be disabled. Use nrf_rtc_int_t values for bit masking.

◆ nrf_rtc_int_enable()

NRF_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]maskMask of interrupts to be enabled. Use nrf_rtc_int_t values for bit masking.

◆ nrf_rtc_int_enable_check()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]maskMask of interrupts to be checked. Use nrf_rtc_int_t values for bit masking.
Returns
Mask of enabled interrupts.

◆ nrf_rtc_prescaler_get()

NRF_STATIC_INLINE uint32_t nrf_rtc_prescaler_get ( NRF_RTC_Type const *  p_reg)

Function for getting a prescaler value.

Parameters
[in]p_regPointer to the structure of registers of the peripheral.
Returns
Prescaler value.

◆ nrf_rtc_prescaler_set()

NRF_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.

◆ nrf_rtc_publish_clear()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]eventEvent for which to clear the configuration.

◆ nrf_rtc_publish_set()

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
[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.

◆ nrf_rtc_subscribe_clear()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskTask for which to clear the configuration.

◆ nrf_rtc_subscribe_set()

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
[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.

◆ nrf_rtc_task_address_get()

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
[in]p_regPointer to the structure of registers of the peripheral.
[in]taskRequested task.
Returns
Address of the requested task register.

◆ nrf_rtc_task_trigger()

NRF_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