BURTCEMLIB
Detailed Description
Backup Real Time Counter (BURTC) Peripheral API.
This module contains functions to control the BURTC peripheral of Silicon Labs 32-bit MCUs. The Backup Real Time Counter allows timekeeping in all energy modes. The Backup RTC is also available when the system is in backup mode.
Data Structures | |
struct | BURTC_Init_TypeDef |
Macros | |
#define | BURTC_INIT_DEFAULT |
#define | burtcClkDiv_1 1 |
#define | burtcClkDiv_128 128 |
#define | burtcClkDiv_16 16 |
#define | burtcClkDiv_2 2 |
#define | burtcClkDiv_32 32 |
#define | burtcClkDiv_4 4 |
#define | burtcClkDiv_64 64 |
#define | burtcClkDiv_8 8 |
Functions | |
uint32_t | BURTC_ClockFreqGet (void) |
uint32_t | BURTC_CompareGet (unsigned int comp) |
Get the BURTC compare value. | |
void | BURTC_CompareSet (unsigned int comp, uint32_t value) |
Set BURTC compare channel. | |
__STATIC_INLINE uint32_t | BURTC_CounterGet (void) |
Get BURTC counter. | |
void | BURTC_CounterReset (void) |
Reset counter. | |
void | BURTC_Enable (bool enable) |
Enable or Disable BURTC peripheral. | |
void | BURTC_Init (const BURTC_Init_TypeDef *burtcInit) |
Initialize BURTC. | |
__STATIC_INLINE void | BURTC_IntClear (uint32_t flags) |
Clear one or more pending BURTC interrupts. | |
__STATIC_INLINE void | BURTC_IntDisable (uint32_t flags) |
Disable one or more BURTC interrupts. | |
__STATIC_INLINE void | BURTC_IntEnable (uint32_t flags) |
Enable one or more BURTC interrupts. | |
__STATIC_INLINE uint32_t | BURTC_IntGet (void) |
Get pending BURTC interrupt flags. | |
__STATIC_INLINE uint32_t | BURTC_IntGetEnabled (void) |
Get enabled and pending BURTC interrupt flags. | |
__STATIC_INLINE void | BURTC_IntSet (uint32_t flags) |
Set one or more pending BURTC interrupts from SW. | |
__STATIC_INLINE void | BURTC_Lock (void) |
Lock BURTC registers, will protect from writing new config settings. | |
void | BURTC_Reset (void) |
Restore BURTC to reset state. | |
__STATIC_INLINE void | BURTC_Start (void) |
Start BURTC counter. | |
__STATIC_INLINE uint32_t | BURTC_Status (void) |
Status of BURTC RAM, timestamp and LP Mode. | |
__STATIC_INLINE void | BURTC_Stop (void) |
Stop the BURTC counter. | |
__STATIC_INLINE void | BURTC_SyncWait (void) |
Wait for the BURTC to complete all synchronization of register changes and commands. | |
__STATIC_INLINE void | BURTC_Unlock (void) |
Unlock BURTC registers, enable write access to change configuration. | |
Macro Definition Documentation
#define BURTC_INIT_DEFAULT |
Default configuration for BURTC init structure
Definition at line 156
of file em_burtc.h
.
#define burtcClkDiv_1 1 |
BURTC clock divisors. These values are valid for the BURTC prescaler. Divide clock by 1.
Definition at line 61
of file em_burtc.h
.
#define burtcClkDiv_128 128 |
Divide clock by 128.
Definition at line 68
of file em_burtc.h
.
#define burtcClkDiv_16 16 |
Divide clock by 16.
Definition at line 65
of file em_burtc.h
.
#define burtcClkDiv_2 2 |
Divide clock by 2.
Definition at line 62
of file em_burtc.h
.
#define burtcClkDiv_32 32 |
Divide clock by 32.
Definition at line 66
of file em_burtc.h
.
#define burtcClkDiv_4 4 |
Divide clock by 4.
Definition at line 63
of file em_burtc.h
.
#define burtcClkDiv_64 64 |
Divide clock by 64.
Definition at line 67
of file em_burtc.h
.
#define burtcClkDiv_8 8 |
Divide clock by 8.
Definition at line 64
of file em_burtc.h
.
Function Documentation
uint32_t BURTC_CompareGet | ( | unsigned int | comp | ) |
Get the BURTC compare value.
- Parameters
-
[in] comp
Compare the channel index value, must be 0 for Giant/Leopard Gecko.
- Returns
- The currently configured value for this compare channel.
Definition at line 301
of file em_burtc.c
.
References BURTC.
void BURTC_CompareSet | ( | unsigned int | comp, |
uint32_t | value |
||
) |
Set BURTC compare channel.
- Parameters
-
[in] comp
Compare the channel index, must be 0 for current devices. [in] value
New compare value.
Definition at line 271
of file em_burtc.c
.
References BURTC, and BURTC_SYNCBUSY_COMP.
__STATIC_INLINE uint32_t BURTC_CounterGet | ( | void |
| ) |
Get BURTC counter.
- Returns
- BURTC counter value
Definition at line 373
of file em_burtc.h
.
References BURTC.
void BURTC_Enable | ( | bool | enable | ) |
Enable or Disable BURTC peripheral.
- Parameters
-
[in] enable
true to enable, false to disable.
Definition at line 224
of file em_burtc.c
.
References BURTC, BURTC_EN_EN, BURTC_Stop(), BURTC_SYNCBUSY_EN, and BURTC_SyncWait().
Referenced by BURTC_Init().
void BURTC_Init | ( | const BURTC_Init_TypeDef * | burtcInit | ) |
Initialize BURTC.
Configures the BURTC peripheral.
- Note
- Before initialization, BURTC module must first be enabled by clearing the reset bit in the RMU, i.e.,
* RMU_ResetControl(rmuResetBU, rmuResetModeClear); *
Compare channel 0 must be configured outside this function, before initialization if enable is set to true. The counter will always be reset.
- Parameters
-
[in] burtcInit
A pointer to the BURTC initialization structure.
Definition at line 129
of file em_burtc.c
.
References _BURTC_CFG_CNTPRESC_SHIFT, _BURTC_CFG_COMPTOP_SHIFT, _BURTC_CFG_DEBUGRUN_SHIFT, _BURTC_EM4WUEN_COMPEM4WUEN_SHIFT, _BURTC_EM4WUEN_OFEM4WUEN_SHIFT, BURTC, BURTC_EN_EN, BURTC_Enable(), BURTC_IntClear(), BURTC_Start(), BURTC_SYNCBUSY_EN, BURTC_SyncWait(), BURTC_Init_TypeDef::clkDiv, BURTC_Init_TypeDef::compare0Top, BURTC_Init_TypeDef::debugRun, BURTC_Init_TypeDef::em4comp, BURTC_Init_TypeDef::em4overflow, and BURTC_Init_TypeDef::start.
__STATIC_INLINE void BURTC_IntClear | ( | uint32_t | flags | ) |
Clear one or more pending BURTC interrupts.
- Parameters
-
[in] flags
BURTC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).
Definition at line 180
of file em_burtc.h
.
References BURTC.
Referenced by BURTC_Init().
__STATIC_INLINE void BURTC_IntDisable | ( | uint32_t | flags | ) |
Disable one or more BURTC interrupts.
- Parameters
-
[in] flags
BURTC interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).
Definition at line 198
of file em_burtc.h
.
References BURTC.
__STATIC_INLINE void BURTC_IntEnable | ( | uint32_t | flags | ) |
Enable one or more BURTC interrupts.
- Note
- Depending on use, a pending interrupt may already be set prior to enabling the interrupt. Consider using BURTC_IntClear() prior to enabling if a pending interrupt should be ignored.
- Parameters
-
[in] flags
BURTC interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).
Definition at line 221
of file em_burtc.h
.
References BURTC.
__STATIC_INLINE uint32_t BURTC_IntGet | ( | void |
| ) |
Get pending BURTC interrupt flags.
- Note
- This function does not clear the event bits.
- Returns
- Pending BURTC interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the BURTC module (BURTC_IFS_nnn).
Definition at line 241
of file em_burtc.h
.
References BURTC.
__STATIC_INLINE uint32_t BURTC_IntGetEnabled | ( | void |
| ) |
Get enabled and pending BURTC interrupt flags.
- Note
- The event bits are not cleared by the use of this function.
- Returns
- Pending BURTC interrupt sources that is also enabled. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the BURTC module (BURTC_IFS_nnn).
Definition at line 258
of file em_burtc.h
.
References BURTC.
__STATIC_INLINE void BURTC_IntSet | ( | uint32_t | flags | ) |
Set one or more pending BURTC interrupts from SW.
- Parameters
-
[in] flags
BURTC interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).
Definition at line 278
of file em_burtc.h
.
References BURTC.
void BURTC_Reset | ( | void |
| ) |
Restore BURTC to reset state.
- Note
- Before accessing the BURTC, BURSTEN in RMU->CTRL must be cleared. LOCK will not be reset to default value, as this will disable access to core BURTC registers.
Definition at line 337
of file em_burtc.c
.
References _BURTC_CFG_RESETVALUE, _BURTC_EM4WUEN_RESETVALUE, _BURTC_IEN_RESETVALUE, _BURTC_IF_MASK, BURTC, BURTC_EN_EN, BURTC_Stop(), BURTC_SyncWait(), BUS_RegBitRead(), and BUS_RegBitWrite().
__STATIC_INLINE void BURTC_Start | ( | void |
| ) |
Start BURTC counter.
This function will send a start command to the BURTC peripheral. The BURTC peripheral will use some LF clock ticks before the command is executed. The BURTC_SyncWait() function can be used to wait for the start command to be executed.
- Note
- This function requires the BURTC to be enabled.
Definition at line 341
of file em_burtc.h
.
References BURTC, BURTC_CMD_START, and BURTC_SyncWait().
Referenced by BURTC_CounterReset(), and BURTC_Init().
__STATIC_INLINE uint32_t BURTC_Status | ( | void |
| ) |
Status of BURTC RAM, timestamp and LP Mode.
- Returns
- A mask logially OR-ed status bits
Definition at line 293
of file em_burtc.h
.
References BURTC.
__STATIC_INLINE void BURTC_Stop | ( | void |
| ) |
Stop the BURTC counter.
This function will send a stop command to the BURTC peripheral. The BURTC peripheral will use some LF clock ticks before the command is executed. The BURTC_SyncWait() function can be used to wait for the stop command to be executed.
- Note
- This function requires the BURTC to be enabled.
Definition at line 360
of file em_burtc.h
.
References BURTC, BURTC_CMD_STOP, and BURTC_SyncWait().
Referenced by BURTC_CounterReset(), BURTC_Enable(), and BURTC_Reset().