RTCC - Real Timer Counter/Calendar#
Real Time Counter and Calendar (RTCC) Peripheral API.
This module contains functions to control the RTCC peripheral of Silicon Labs 32-bit MCUs and SoCs. The RTCC ensures timekeeping in low energy modes. The RTCC also includes a BCD calendar mode for easy time and date keeping.
Modules#
Enumerations#
Operational mode of the counter.
Counter prescaler selection.
Prescaler mode of the RTCC counter.
Capture/Compare channel mode.
Compare match output action mode.
Input edge select.
Capture/Compare channel compare mode.
Day compare mode.
Typedefs#
PRS channel number.
Functions#
Configure the selected capture/compare channel of the RTCC.
Enable/disable RTCC counting.
Initialize RTCC.
Restore RTCC to its reset state.
Clear the STATUS register.
Get the RTCC compare register value for a selected channel.
Set the RTCC compare register value for a selected channel.
Get the RTCC input capture register value for a selected channel.
Get the RTCC capture/compare register value for a selected channel.
Set RTCC capture/compare register value for a selected channel.
Get the calendar DATE register content for a selected channel.
Set the calendar DATE register for a selected channel.
Get the calendar TIME register content for a selected channel.
Set the calendar TIME register for a selected channel.
Get the combined CNT/PRECNT register content.
Get the RTCC counter value.
Set the RTCC CNT counter.
Get the DATE register value.
Set the RTCC DATE register.
Enable/disable EM4 wakeup capability.
Clear one or more pending RTCC interrupts.
Disable one or more RTCC interrupts.
Enable one or more RTCC interrupts.
Get pending RTCC interrupt flags.
Get enabled and pending RTCC interrupt flags.
Set one or more pending RTCC interrupts from SW.
Lock RTCC registers.
Get the RTCC pre-counter value.
Set the RTCC pre-counter value.
Power down retention RAM.
Get the STATUS register value.
Get the TIME register value.
Set the RTCC TIME register.
Unlock RTCC registers.
Macros#
Default RTCC initialization structure.
Default RTCC channel output compare initialization structure.
Default RTCC channel input capture initialization structure.
Number of RTCC capture/compare channels.
Validation of valid RTCC channel for assert statements.
Enumeration Documentation#
RTCC_CntMode_TypeDef#
RTCC_CntMode_TypeDef
Operational mode of the counter.
Enumerator | |
---|---|
rtccCntModeNormal | Normal counter mode. |
rtccCntModeCalendar | Calendar mode. |
RTCC_CntPresc_TypeDef#
RTCC_CntPresc_TypeDef
Counter prescaler selection.
Enumerator | |
---|---|
rtccCntPresc_1 | Divide clock by 1. |
rtccCntPresc_2 | Divide clock by 2. |
rtccCntPresc_4 | Divide clock by 4. |
rtccCntPresc_8 | Divide clock by 8. |
rtccCntPresc_16 | Divide clock by 16. |
rtccCntPresc_32 | Divide clock by 32. |
rtccCntPresc_64 | Divide clock by 64. |
rtccCntPresc_128 | Divide clock by 128. |
rtccCntPresc_256 | Divide clock by 256. |
rtccCntPresc_512 | Divide clock by 512. |
rtccCntPresc_1024 | Divide clock by 1024. |
rtccCntPresc_2048 | Divide clock by 2048. |
rtccCntPresc_4096 | Divide clock by 4096. |
rtccCntPresc_8192 | Divide clock by 8192. |
rtccCntPresc_16384 | Divide clock by 16384. |
rtccCntPresc_32768 | Divide clock by 32768. |
RTCC_PrescMode_TypeDef#
RTCC_PrescMode_TypeDef
Prescaler mode of the RTCC counter.
Enumerator | |
---|---|
rtccCntTickPresc | CNT register ticks according to prescaler value. |
rtccCntTickCCV0Match | CNT register ticks when PRECNT matches the 15 least significant bits of ch. |
RTCC_CapComChMode_TypeDef#
RTCC_CapComChMode_TypeDef
Capture/Compare channel mode.
Enumerator | |
---|---|
rtccCapComChModeOff | Capture/Compare channel turned off. |
rtccCapComChModeCapture | Capture mode. |
rtccCapComChModeCompare | Compare mode. |
RTCC_CompMatchOutAction_TypeDef#
RTCC_CompMatchOutAction_TypeDef
Compare match output action mode.
Enumerator | |
---|---|
rtccCompMatchOutActionPulse | Generate a pulse. |
rtccCompMatchOutActionToggle | Toggle output. |
rtccCompMatchOutActionClear | Clear output. |
rtccCompMatchOutActionSet | Set output. |
RTCC_InEdgeSel_TypeDef#
RTCC_InEdgeSel_TypeDef
Input edge select.
Enumerator | |
---|---|
rtccInEdgeRising | Rising edges detected. |
rtccInEdgeFalling | Falling edges detected. |
rtccInEdgeBoth | Both edges detected. |
rtccInEdgeNone | No edge detection, signal is left as is. |
RTCC_CompBase_TypeDef#
RTCC_CompBase_TypeDef
Capture/Compare channel compare mode.
Enumerator | |
---|---|
rtccCompBaseCnt | CCVx is compared with the CNT register. |
rtccCompBasePreCnt | CCVx is compared with a CNT[16:0] and PRECNT[14:0]. |
RTCC_DayCompareMode_TypeDef#
RTCC_DayCompareMode_TypeDef
Day compare mode.
Enumerator | |
---|---|
rtccDayCompareModeMonth | Day of month is selected for Capture/Compare. |
rtccDayCompareModeWeek | Day of week is selected for Capture/Compare. |
Typedef Documentation#
RTCC_PRSSel_TypeDef#
typedef uint8_t RTCC_PRSSel_TypeDef
PRS channel number.
This type is used when configuring input capture mode on a RTCC channel.
Function Documentation#
RTCC_ChannelInit#
void RTCC_ChannelInit (int ch, RTCC_CCChConf_TypeDef const * confPtr)
Configure the selected capture/compare channel of the RTCC.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | A channel selector. |
RTCC_CCChConf_TypeDef const * | [in] | confPtr | A pointer to the configuration structure. |
Use this function to configure an RTCC channel. Select capture/compare mode, match output action, overflow output action, and PRS input configuration. See the configuration structure RTCC_CCChConf_TypeDef for more details.
RTCC_Enable#
void RTCC_Enable (bool enable)
Enable/disable RTCC counting.
Type | Direction | Argument Name | Description |
---|---|---|---|
bool | [in] | enable | True to enable RTCC counting, false to disable counting. |
RTCC_Init#
void RTCC_Init (const RTCC_Init_TypeDef * init)
Initialize RTCC.
Type | Direction | Argument Name | Description |
---|---|---|---|
const RTCC_Init_TypeDef * | [in] | init | A pointer to the RTCC initialization structure. |
Note that the compare values must be set separately with RTCC_CompareSet(), which should probably be done prior to the use of this function if configuring the RTCC to start when initialization is completed.
RTCC_Reset#
void RTCC_Reset (void )
Restore RTCC to its reset state.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
RTCC_StatusClear#
void RTCC_StatusClear (void )
Clear the STATUS register.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
RTCC_ChannelCompareValueGet#
uint32_t RTCC_ChannelCompareValueGet (int ch)
Get the RTCC compare register value for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
Returns
Compare register value.
RTCC_ChannelCompareValueSet#
void RTCC_ChannelCompareValueSet (int ch, uint32_t value)
Set the RTCC compare register value for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
uint32_t | [in] | value | Compare register value |
RTCC_ChannelCaptureValueGet#
uint32_t RTCC_ChannelCaptureValueGet (int ch)
Get the RTCC input capture register value for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
Returns
Capture register value.
RTCC_ChannelCCVGet#
uint32_t RTCC_ChannelCCVGet (int ch)
Get the RTCC capture/compare register value for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
For parts with separate capture compare value registers, this function returns the compare value.
Returns
Capture/compare register value.
RTCC_ChannelCCVSet#
void RTCC_ChannelCCVSet (int ch, uint32_t value)
Set RTCC capture/compare register value for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
uint32_t | [in] | value | Capture/compare register value |
For parts with separate capture compare value registers, this function sets the compare value.
RTCC_ChannelDateGet#
uint32_t RTCC_ChannelDateGet (int ch)
Get the calendar DATE register content for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
Returns
DATE register value.
RTCC_ChannelDateSet#
void RTCC_ChannelDateSet (int ch, uint32_t date)
Set the calendar DATE register for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
uint32_t | [in] | date | DATE value. |
RTCC_ChannelTimeGet#
uint32_t RTCC_ChannelTimeGet (int ch)
Get the calendar TIME register content for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
Returns
TIME register value.
RTCC_ChannelTimeSet#
void RTCC_ChannelTimeSet (int ch, uint32_t time)
Set the calendar TIME register for a selected channel.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | ch | Channel selector. |
uint32_t | [in] | time | TIME value. |
RTCC_CombinedCounterGet#
uint32_t RTCC_CombinedCounterGet (void )
Get the combined CNT/PRECNT register content.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
CNT/PRECNT register value.
RTCC_CounterGet#
uint32_t RTCC_CounterGet (void )
Get the RTCC counter value.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
Current RTCC counter value.
RTCC_CounterSet#
void RTCC_CounterSet (uint32_t value)
Set the RTCC CNT counter.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | value | CNT value. |
RTCC_DateGet#
uint32_t RTCC_DateGet (void )
Get the DATE register value.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
Current DATE register value.
RTCC_DateSet#
void RTCC_DateSet (uint32_t date)
Set the RTCC DATE register.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | date | DATE value. |
RTCC_EM4WakeupEnable#
void RTCC_EM4WakeupEnable (bool enable)
Enable/disable EM4 wakeup capability.
Type | Direction | Argument Name | Description |
---|---|---|---|
bool | [in] | enable | Set to true to enable EM4 wakeup, set to false otherwise. |
RTCC_IntClear#
void RTCC_IntClear (uint32_t flags)
Clear one or more pending RTCC interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | RTCC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources. |
RTCC_IntDisable#
void RTCC_IntDisable (uint32_t flags)
Disable one or more RTCC interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | RTCC interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt. |
RTCC_IntEnable#
void RTCC_IntEnable (uint32_t flags)
Enable one or more RTCC interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | RTCC interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt. |
Note
Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. To ignore a pending interrupt, consider using RTCC_IntClear() prior to enabling the interrupt.
RTCC_IntGet#
uint32_t RTCC_IntGet (void )
Get pending RTCC interrupt flags.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Note
Event bits are not cleared by using this function.
Returns
Pending RTCC interrupt sources. Returns a set of interrupt flags OR-ed together for the interrupt sources set.
RTCC_IntGetEnabled#
uint32_t RTCC_IntGetEnabled (void )
Get enabled and pending RTCC interrupt flags.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Useful for handling more interrupt sources in the same interrupt handler.
Returns
Pending and enabled RTCC interrupt sources. Returns a set of interrupt flags OR-ed together for the interrupt sources set.
RTCC_IntSet#
void RTCC_IntSet (uint32_t flags)
Set one or more pending RTCC interrupts from SW.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | RTCC interrupt sources to set to pending. Use a set of interrupt flags (RTCC_IFS_nnn). |
RTCC_Lock#
void RTCC_Lock (void )
Lock RTCC registers.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Note
When RTCC registers are locked, RTCC_CTRL, RTCC_PRECNT, RTCC_CNT, RTCC_TIME, RTCC_DATE, RTCC_IEN, RTCC_POWERDOWN and RTCC_CCx_XXX registers cannot be written to.
RTCC_PreCounterGet#
uint32_t RTCC_PreCounterGet (void )
Get the RTCC pre-counter value.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
Current RTCC pre-counter value.
RTCC_PreCounterSet#
void RTCC_PreCounterSet (uint32_t preCntVal)
Set the RTCC pre-counter value.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | preCntVal | RTCC pre-counter value to be set. |
RTCC_RetentionRamPowerDown#
void RTCC_RetentionRamPowerDown (void )
Power down retention RAM.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Note
Once retention RAM is powered down, it cannot be powered up again.
RTCC_StatusGet#
uint32_t RTCC_StatusGet (void )
Get the STATUS register value.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
Current STATUS register value.
RTCC_TimeGet#
uint32_t RTCC_TimeGet (void )
Get the TIME register value.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
Current TIME register value.
RTCC_TimeSet#
void RTCC_TimeSet (uint32_t time)
Set the RTCC TIME register.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | time | TIME value. |
RTCC_Unlock#
void RTCC_Unlock (void )
Unlock RTCC registers.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Note
When RTCC registers are locked, RTCC_CTRL, RTCC_PRECNT, RTCC_CNT, RTCC_TIME, RTCC_DATE, RTCC_IEN, RTCC_POWERDOWN and RTCC_CCx_XXX registers cannot be written to.