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.
|
void
|
BURTC_Init
(const
BURTC_Init_TypeDef
*burtcInit)
|
|
Initialize BURTC.
|
|
void
|
BURTC_Enable
(bool enable)
|
|
Enable or Disable BURTC peripheral.
|
|
void
|
BURTC_CompareSet
(unsigned int comp, uint32_t value)
|
|
Set BURTC compare channel.
|
|
uint32_t
|
BURTC_CompareGet
(unsigned int comp)
|
|
Get the BURTC compare value.
|
|
void
|
BURTC_CounterReset
(void)
|
|
Reset counter.
|
|
void
|
BURTC_Reset
(void)
|
|
Restore BURTC to reset state.
|
|
void
|
BURTC_IntClear
(uint32_t flags)
|
|
Clear one or more pending BURTC interrupts.
|
|
void
|
BURTC_IntDisable
(uint32_t flags)
|
|
Disable one or more BURTC interrupts.
|
|
void
|
BURTC_IntEnable
(uint32_t flags)
|
|
Enable one or more BURTC interrupts.
|
|
uint32_t
|
BURTC_IntGet
(void)
|
|
Get pending BURTC interrupt flags.
|
|
uint32_t
|
BURTC_IntGetEnabled
(void)
|
|
Get enabled and pending BURTC interrupt flags.
|
|
void
|
BURTC_IntSet
(uint32_t flags)
|
|
Set one or more pending BURTC interrupts from SW.
|
|
uint32_t
|
BURTC_Status
(void)
|
|
Status of BURTC RAM, timestamp and LP Mode.
|
|
void
|
BURTC_SyncWait
(void)
|
|
Wait for the BURTC to complete all synchronization of register changes and commands.
|
|
void
|
BURTC_Start
(void)
|
|
Start BURTC counter.
|
|
void
|
BURTC_Stop
(void)
|
|
Stop the BURTC counter.
|
|
uint32_t
|
BURTC_CounterGet
(void)
|
|
Get BURTC counter.
|
|
void
|
BURTC_Lock
(void)
|
|
Lock BURTC registers, will protect from writing new config settings.
|
|
void
|
BURTC_Unlock
(void)
|
|
Unlock BURTC registers, enable write access to change configuration.
|
|
◆
BURTC_Init()
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.
|
◆
BURTC_Enable()
void BURTC_Enable
|
(
|
bool
|
enable
|
)
|
|
Enable or Disable BURTC peripheral.
-
Parameters
-
[in]
|
enable
|
true to enable, false to disable.
|
◆
BURTC_CompareSet()
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.
|
◆
BURTC_CompareGet()
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.
◆
BURTC_CounterReset()
void BURTC_CounterReset
|
(
|
void
|
|
)
|
|
◆
BURTC_Reset()
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.
◆
BURTC_IntClear()
void BURTC_IntClear
|
(
|
uint32_t
|
flags
|
)
|
|
|
inline
|
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).
|
◆
BURTC_IntDisable()
void BURTC_IntDisable
|
(
|
uint32_t
|
flags
|
)
|
|
|
inline
|
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).
|
◆
BURTC_IntEnable()
void BURTC_IntEnable
|
(
|
uint32_t
|
flags
|
)
|
|
|
inline
|
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).
|
◆
BURTC_IntGet()
uint32_t BURTC_IntGet
|
(
|
void
|
|
)
|
|
|
inline
|
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).
◆
BURTC_IntGetEnabled()
uint32_t BURTC_IntGetEnabled
|
(
|
void
|
|
)
|
|
|
inline
|
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).
◆
BURTC_IntSet()
void BURTC_IntSet
|
(
|
uint32_t
|
flags
|
)
|
|
|
inline
|
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).
|
◆
BURTC_Status()
uint32_t BURTC_Status
|
(
|
void
|
|
)
|
|
|
inline
|
Status of BURTC RAM, timestamp and LP Mode.
-
Returns
-
A mask logially OR-ed status bits
◆
BURTC_SyncWait()
void BURTC_SyncWait
|
(
|
void
|
|
)
|
|
|
inline
|
Wait for the BURTC to complete all synchronization of register changes and commands.
◆
BURTC_Start()
void BURTC_Start
|
(
|
void
|
|
)
|
|
|
inline
|
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.
◆
BURTC_Stop()
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.
◆
BURTC_CounterGet()
uint32_t BURTC_CounterGet
|
(
|
void
|
|
)
|
|
|
inline
|
Get BURTC counter.
-
Returns
-
BURTC counter value
◆
BURTC_Lock()
Lock BURTC registers, will protect from writing new config settings.
◆
BURTC_Unlock()
void BURTC_Unlock
|
(
|
void
|
|
)
|
|
|
inline
|
Unlock BURTC registers, enable write access to change configuration.
◆
burtcClkDiv_1
BURTC clock divisors.
These values are valid for the BURTC prescaler. Divide clock by 1.
◆
burtcClkDiv_2
◆
burtcClkDiv_4
◆
burtcClkDiv_8
◆
burtcClkDiv_16
#define burtcClkDiv_16 16
|
◆
burtcClkDiv_32
#define burtcClkDiv_32 32
|
◆
burtcClkDiv_64
#define burtcClkDiv_64 64
|
◆
burtcClkDiv_128
#define burtcClkDiv_128 128
|
◆
BURTC_INIT_DEFAULT
#define BURTC_INIT_DEFAULT
|
Value:
{ \
true, \
false, \
1, \
0, \
false, \
false, \
}
Default configuration for BURTC init structure.