RTC - Real Time Counter

Description

Real Time Counter (RTC) Peripheral API.

This module contains functions to control the RTC peripheral of Silicon Labs 32-bit MCUs and SoCs. The RTC ensures timekeeping in low energy modes.

Data Structures

struct  RTC_Init_TypeDef
 RTC initialization structure.
 

Functions

uint32_t RTC_CompareGet (unsigned int comp)
 Get the RTC compare register value.
 
void RTC_CompareSet (unsigned int comp, uint32_t value)
 Set the RTC compare register value.
 
uint32_t RTC_CounterGet (void)
 Get RTC counter value.
 
void RTC_CounterSet (uint32_t value)
 Set the RTC counter value.
 
void RTC_CounterReset (void)
 Restart the RTC counter from zero.
 
void RTC_Enable (bool enable)
 Enable/disable RTC.
 
void RTC_Init (const RTC_Init_TypeDef *init)
 Initialize RTC.
 
void RTC_IntClear (uint32_t flags)
 Clear one or more pending RTC interrupts.
 
void RTC_IntDisable (uint32_t flags)
 Disable one or more RTC interrupts.
 
void RTC_IntEnable (uint32_t flags)
 Enable one or more RTC interrupts.
 
uint32_t RTC_IntGet (void)
 Get pending RTC interrupt flags.
 
uint32_t RTC_IntGetEnabled (void)
 Get enabled and pending RTC interrupt flags.
 
void RTC_IntSet (uint32_t flags)
 Set one or more pending RTC interrupts from SW.
 
void RTC_Reset (void)
 Restore RTC to reset state.
 

Macros

#define NUM_RTC_CHANNELS   6U
 The RTC peripheral on series 0 devices support 2 compare channels while the RTC peripheral on series 1 devices support 6 compare channels.
 
#define RTC_INIT_DEFAULT
 Suggested default configuration for RTC initialization structure.
 

Function Documentation

◆ RTC_CompareGet()

uint32_t RTC_CompareGet ( unsigned int  comp)

Get the RTC compare register value.

Parameters
[in]compA compare register to get. This value must be less than NUM_RTC_CHANNELS.
Returns
A compare register value, 0 if invalid register selected.

◆ RTC_CompareSet()

void RTC_CompareSet ( unsigned int  comp,
uint32_t  value 
)

Set the RTC compare register value.

Note
The setting of a compare register requires synchronization into the low-frequency domain. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family. See comments in the regSync() internal function call.
Parameters
[in]compA compare register to set. This value must be less than NUM_RTC_CHANNELS.
[in]valueAn initialization value (<= 0x00ffffff).

◆ RTC_CounterGet()

uint32_t RTC_CounterGet ( void  )
inline

Get RTC counter value.

Returns
Current RTC counter value.

◆ RTC_CounterSet()

void RTC_CounterSet ( uint32_t  value)
inline

Set the RTC counter value.

Parameters
[in]valueThe new RTC counter value.

◆ RTC_CounterReset()

void RTC_CounterReset ( void  )

Restart the RTC counter from zero.

◆ RTC_Enable()

void RTC_Enable ( bool  enable)

Enable/disable RTC.

Note
The enabling/disabling of RTC modifies the RTC CTRL register which requires synchronization into the low-frequency domain. If this register is modified before a previous update to the same register has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family. See comments in the regSync() internal function call.
Parameters
[in]enableTrue to enable counting, false to disable.

◆ RTC_Init()

void RTC_Init ( const RTC_Init_TypeDef init)

Initialize RTC.

Note that the compare values must be set separately with RTC_CompareSet() prior to the use of this function if configuring the RTC to start when initialization is completed.

Note
The initialization of the RTC modifies the RTC CTRL register which requires synchronization into the low-frequency domain. If this register is modified before a previous update to the same register has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family. See comments in the regSync() internal function call.
Parameters
[in]initA pointer to the RTC initialization structure.

◆ RTC_IntClear()

void RTC_IntClear ( uint32_t  flags)
inline

Clear one or more pending RTC interrupts.

Parameters
[in]flagsRTC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources for the RTC module (RTC_IFS_nnn).

◆ RTC_IntDisable()

void RTC_IntDisable ( uint32_t  flags)
inline

Disable one or more RTC interrupts.

Parameters
[in]flagsRTC interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt sources for the RTC module (RTC_IFS_nnn).

◆ RTC_IntEnable()

void RTC_IntEnable ( uint32_t  flags)
inline

Enable one or more RTC interrupts.

Note
Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. To ignore a pending interrupt, consider using RTC_IntClear() prior to enabling the interrupt.
Parameters
[in]flagsRTC interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the RTC module (RTC_IFS_nnn).

◆ RTC_IntGet()

uint32_t RTC_IntGet ( void  )
inline

Get pending RTC interrupt flags.

Note
Event bits are not cleared by using this function.
Returns
Pending RTC interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the RTC module (RTC_IFS_nnn).

◆ RTC_IntGetEnabled()

uint32_t RTC_IntGetEnabled ( void  )
inline

Get enabled and pending RTC interrupt flags.

Useful for handling more interrupt sources in the same interrupt handler.

Note
Interrupt flags are not cleared by using this function.
Returns
Pending and enabled RTC interrupt sources. The return value is the bitwise AND of
  • the enabled interrupt sources in RTC_IEN and
  • the pending interrupt flags RTC_IF.

◆ RTC_IntSet()

void RTC_IntSet ( uint32_t  flags)
inline

Set one or more pending RTC interrupts from SW.

Parameters
[in]flagsRTC interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the RTC module (RTC_IFS_nnn).

◆ RTC_Reset()

void RTC_Reset ( void  )

Restore RTC to reset state.

Macro Definition Documentation

◆ NUM_RTC_CHANNELS

#define NUM_RTC_CHANNELS   6U

The RTC peripheral on series 0 devices support 2 compare channels while the RTC peripheral on series 1 devices support 6 compare channels.

◆ RTC_INIT_DEFAULT

#define RTC_INIT_DEFAULT
Value:
{ \
true, /* Start counting when initialization is done. */ \
false, /* Disable updating during debug halt. */ \
true /* Restart counting from 0 when reaching COMP0. */ \
}

Suggested default configuration for RTC initialization structure.