RTCC - Real Timer Counter/Calendar
Description
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.
| Data Structures | |
| struct | RTCC_Init_TypeDef | 
| RTCC initialization structure. | |
| struct | RTCC_CCChConf_TypeDef | 
| RTCC capture/compare channel configuration structure. | |
| Functions | |
| void | RTCC_ChannelInit (int ch, RTCC_CCChConf_TypeDef const *confPtr) | 
| Configure the selected capture/compare channel of the RTCC. | |
| void | RTCC_Enable (bool enable) | 
| Enable/disable RTCC counting. | |
| void | RTCC_Init (const RTCC_Init_TypeDef *init) | 
| Initialize RTCC. | |
| void | RTCC_Reset (void) | 
| Restore RTCC to its reset state. | |
| void | RTCC_StatusClear (void) | 
| Clear the STATUS register. | |
| uint32_t | RTCC_ChannelCompareValueGet (int ch) | 
| Get the RTCC compare register value for a selected channel. | |
| void | RTCC_ChannelCompareValueSet (int ch, uint32_t value) | 
| Set the RTCC compare register value for a selected channel. | |
| uint32_t | RTCC_ChannelCaptureValueGet (int ch) | 
| Get the RTCC input capture register value for a selected channel. | |
| uint32_t | RTCC_ChannelCCVGet (int ch) | 
| Get the RTCC capture/compare register value for a selected channel. | |
| void | RTCC_ChannelCCVSet (int ch, uint32_t value) | 
| Set RTCC capture/compare register value for a selected channel. | |
| uint32_t | RTCC_CombinedCounterGet (void) | 
| Get the combined CNT/PRECNT register content. | |
| uint32_t | RTCC_CounterGet (void) | 
| Get the RTCC counter value. | |
| void | RTCC_CounterSet (uint32_t value) | 
| Set the RTCC CNT counter. | |
| void | RTCC_IntClear (uint32_t flags) | 
| Clear one or more pending RTCC interrupts. | |
| void | RTCC_IntDisable (uint32_t flags) | 
| Disable one or more RTCC interrupts. | |
| void | RTCC_IntEnable (uint32_t flags) | 
| Enable one or more RTCC interrupts. | |
| uint32_t | RTCC_IntGet (void) | 
| Get pending RTCC interrupt flags. | |
| uint32_t | RTCC_IntGetEnabled (void) | 
| Get enabled and pending RTCC interrupt flags. | |
| void | RTCC_IntSet (uint32_t flags) | 
| Set one or more pending RTCC interrupts from SW. | |
| void | RTCC_Lock (void) | 
| Lock RTCC registers. | |
| uint32_t | RTCC_PreCounterGet (void) | 
| Get the RTCC pre-counter value. | |
| void | RTCC_PreCounterSet (uint32_t preCntVal) | 
| Set the RTCC pre-counter value. | |
| uint32_t | RTCC_StatusGet (void) | 
| Get the STATUS register value. | |
| void | RTCC_SyncWait (void) | 
| Wait for the RTCC to complete all synchronization of register changes and commands. | |
| void | RTCC_Start (void) | 
| Start the RTCC counter. | |
| void | RTCC_Stop (void) | 
| Stop the RTCC counter. | |
| void | RTCC_Unlock (void) | 
| Unlock RTCC registers. | |
| Macros | |
| #define | RTCC_INIT_DEFAULT | 
| Default RTCC initialization structure. | |
| #define | RTCC_CH_INIT_COMPARE_DEFAULT | 
| Default RTCC channel output compare initialization structure. | |
| #define | RTCC_CH_INIT_CAPTURE_DEFAULT | 
| Default RTCC channel input capture initialization structure. | |
| #define | RTCC_CH_VALID (ch) ((unsigned)(ch) < RTCC_CC_NUM) | 
| Number of RTCC capture/compare channels. | |
| Typedefs | |
| typedef uint8_t | RTCC_PRSSel_TypeDef | 
| PRS channel number. | |
| Enumerations | |
| enum | RTCC_CntPresc_TypeDef
         
         { rtccCntPresc_1 = _RTCC_CFG_CNTPRESC_DIV1, rtccCntPresc_2 = _RTCC_CFG_CNTPRESC_DIV2, rtccCntPresc_4 = _RTCC_CFG_CNTPRESC_DIV4, rtccCntPresc_8 = _RTCC_CFG_CNTPRESC_DIV8, rtccCntPresc_16 = _RTCC_CFG_CNTPRESC_DIV16, rtccCntPresc_32 = _RTCC_CFG_CNTPRESC_DIV32, rtccCntPresc_64 = _RTCC_CFG_CNTPRESC_DIV64, rtccCntPresc_128 = _RTCC_CFG_CNTPRESC_DIV128, rtccCntPresc_256 = _RTCC_CFG_CNTPRESC_DIV256, rtccCntPresc_512 = _RTCC_CFG_CNTPRESC_DIV512, rtccCntPresc_1024 = _RTCC_CFG_CNTPRESC_DIV1024, rtccCntPresc_2048 = _RTCC_CFG_CNTPRESC_DIV2048, rtccCntPresc_4096 = _RTCC_CFG_CNTPRESC_DIV4096, rtccCntPresc_8192 = _RTCC_CFG_CNTPRESC_DIV8192, rtccCntPresc_16384 = _RTCC_CFG_CNTPRESC_DIV16384, rtccCntPresc_32768 = _RTCC_CFG_CNTPRESC_DIV32768 } | 
| Counter prescaler selection. | |
| enum | RTCC_PrescMode_TypeDef
         
         { rtccCntTickPresc = _RTCC_CFG_CNTTICK_PRESC, rtccCntTickCCV0Match = _RTCC_CFG_CNTTICK_CCV0MATCH } | 
| Prescaler mode of the RTCC counter. | |
| enum | RTCC_CapComChMode_TypeDef
         
         { rtccCapComChModeOff = _RTCC_CC_CTRL_MODE_OFF, rtccCapComChModeCapture = _RTCC_CC_CTRL_MODE_INPUTCAPTURE, rtccCapComChModeCompare = _RTCC_CC_CTRL_MODE_OUTPUTCOMPARE } | 
| Capture/Compare channel mode. | |
| enum | RTCC_CompMatchOutAction_TypeDef
         
         { rtccCompMatchOutActionPulse = _RTCC_CC_CTRL_CMOA_PULSE, rtccCompMatchOutActionToggle = _RTCC_CC_CTRL_CMOA_TOGGLE, rtccCompMatchOutActionClear = _RTCC_CC_CTRL_CMOA_CLEAR, rtccCompMatchOutActionSet = _RTCC_CC_CTRL_CMOA_SET } | 
| Compare match output action mode. | |
| enum | RTCC_InEdgeSel_TypeDef
         
         { rtccInEdgeRising = _RTCC_CC_CTRL_ICEDGE_RISING, rtccInEdgeFalling = _RTCC_CC_CTRL_ICEDGE_FALLING, rtccInEdgeBoth = _RTCC_CC_CTRL_ICEDGE_BOTH, rtccInEdgeNone = _RTCC_CC_CTRL_ICEDGE_NONE } | 
| Input edge select. | |
| enum | RTCC_CompBase_TypeDef
         
         { rtccCompBaseCnt = _RTCC_CC_CTRL_COMPBASE_CNT, rtccCompBasePreCnt = _RTCC_CC_CTRL_COMPBASE_PRECNT } | 
| Capture/Compare channel compare mode. | |
Function Documentation
◆ RTCC_ChannelInit()
| void RTCC_ChannelInit | ( | int | 
            ch,
            | 
| RTCC_CCChConf_TypeDef const * | 
            confPtr
            | ||
| ) | 
Configure the selected capture/compare channel of the RTCC.
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.
- Parameters
- 
         [in] chA channel selector. [in] confPtrA pointer to the configuration structure. 
Configure the selected capture/compare channel.
◆ RTCC_Enable()
| void RTCC_Enable | ( | bool | 
            enable
            | ) | 
Enable/disable RTCC counting.
- Parameters
- 
         [in] enableTrue to enable RTCC counting, false to disable counting. 
◆ RTCC_Init()
| void RTCC_Init | ( | const RTCC_Init_TypeDef * | 
            init
            | ) | 
Initialize RTCC.
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.
- Parameters
- 
         [in] initA pointer to the RTCC initialization structure. 
◆ RTCC_Reset()
| void RTCC_Reset | ( | void | 
            | ) | 
Restore RTCC to its reset state.
◆ RTCC_StatusClear()
| void RTCC_StatusClear | ( | void | 
            | ) | 
Clear the STATUS register.
◆ RTCC_ChannelCompareValueGet()
| 
 | inline | 
Get the RTCC compare register value for a selected channel.
- Parameters
- 
         [in] chChannel selector. 
- Returns
- Compare register value.
◆ RTCC_ChannelCompareValueSet()
| 
 | inline | 
Set the RTCC compare register value for a selected channel.
- Parameters
- 
         [in] chChannel selector. [in] valueCompare register value 
◆ RTCC_ChannelCaptureValueGet()
| 
 | inline | 
Get the RTCC input capture register value for a selected channel.
- Parameters
- 
         [in] chChannel selector. 
- Returns
- Capture register value.
◆ RTCC_ChannelCCVGet()
| 
 | inline | 
Get the RTCC capture/compare register value for a selected channel.
For parts with separate capture compare value registers, this function returns the compare value.
- Parameters
- 
         [in] chChannel selector. 
- Returns
- Capture/compare register value.
◆ RTCC_ChannelCCVSet()
| 
 | inline | 
Set RTCC capture/compare register value for a selected channel.
For parts with separate capture compare value registers, this function sets the compare value.
- Parameters
- 
         [in] chChannel selector. [in] valueCapture/compare register value 
◆ RTCC_CombinedCounterGet()
| 
 | inline | 
Get the combined CNT/PRECNT register content.
- Returns
- CNT/PRECNT register value.
◆ RTCC_CounterGet()
| 
 | inline | 
Get the RTCC counter value.
- Returns
- Current RTCC counter value.
◆ RTCC_CounterSet()
| 
 | inline | 
Set the RTCC CNT counter.
- Parameters
- 
         [in] valueCNT value. 
◆ RTCC_IntClear()
| 
 | inline | 
Clear one or more pending RTCC interrupts.
- Parameters
- 
         [in] flagsRTCC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources. 
◆ RTCC_IntDisable()
| 
 | inline | 
Disable one or more RTCC interrupts.
- Parameters
- 
         [in] flagsRTCC interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt. 
◆ RTCC_IntEnable()
| 
 | inline | 
Enable one or more RTCC 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 RTCC_IntClear() prior to enabling the interrupt.
- Parameters
- 
         [in] flagsRTCC interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt. 
◆ RTCC_IntGet()
| 
 | inline | 
Get pending RTCC interrupt flags.
- 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()
| 
 | inline | 
Get enabled and pending RTCC interrupt flags.
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()
| 
 | inline | 
Set one or more pending RTCC interrupts from SW.
- Parameters
- 
         [in] flagsRTCC interrupt sources to set to pending. Use a set of interrupt flags (RTCC_IFS_nnn). 
◆ RTCC_Lock()
| 
 | inline | 
Lock RTCC registers.
- 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()
| 
 | inline | 
Get the RTCC pre-counter value.
- Returns
- Current RTCC pre-counter value.
◆ RTCC_PreCounterSet()
| 
 | inline | 
Set the RTCC pre-counter value.
- Parameters
- 
         [in] preCntValRTCC pre-counter value to be set. 
◆ RTCC_StatusGet()
| 
 | inline | 
Get the STATUS register value.
- Returns
- Current STATUS register value.
◆ RTCC_SyncWait()
| 
 | inline | 
Wait for the RTCC to complete all synchronization of register changes and commands.
◆ RTCC_Start()
| 
 | inline | 
Start the RTCC counter.
This function will send a start command to the RTCC peripheral. The RTCC peripheral will use some LF clock ticks before the command is executed. The RTCC_SyncWait() function can be used to wait for the start command to be executed.
- Note
- This function requires the RTCC to be enabled.
◆ RTCC_Stop()
| 
 | inline | 
Stop the RTCC counter.
This function will send a stop command to the RTCC peripheral. The RTCC peripheral will use some LF clock ticks before the command is executed. The RTCC_SyncWait() function can be used to wait for the stop command to be executed.
- Note
- This function requires the RTCC to be enabled.
◆ RTCC_Unlock()
| 
 | inline | 
Unlock RTCC registers.
- 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.
Macro Definition Documentation
◆ RTCC_INIT_DEFAULT
| #define RTCC_INIT_DEFAULT | 
Default RTCC initialization structure.
◆ RTCC_CH_INIT_COMPARE_DEFAULT
| #define RTCC_CH_INIT_COMPARE_DEFAULT | 
Default RTCC channel output compare initialization structure.
◆ RTCC_CH_INIT_CAPTURE_DEFAULT
| #define RTCC_CH_INIT_CAPTURE_DEFAULT | 
Default RTCC channel input capture initialization structure.
◆ RTCC_CH_VALID
| #define RTCC_CH_VALID | ( | 
            ch
            | ) | ((unsigned)(ch) < RTCC_CC_NUM) | 
Number of RTCC capture/compare channels.
Validation of valid RTCC channel for assert statements.
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.
Enumeration Type Documentation
◆ RTCC_CntPresc_TypeDef
Counter prescaler selection.