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
Value:
{ \
true, \
false, \
1, \
0, \
false, \
false, \
}

Default configuration for BURTC init structure

Definition at line 155 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 60 of file em_burtc.h.

#define burtcClkDiv_128   128

Divide clock by 128.

Definition at line 67 of file em_burtc.h.

#define burtcClkDiv_16   16

Divide clock by 16.

Definition at line 64 of file em_burtc.h.

#define burtcClkDiv_2   2

Divide clock by 2.

Definition at line 61 of file em_burtc.h.

#define burtcClkDiv_32   32

Divide clock by 32.

Definition at line 65 of file em_burtc.h.

#define burtcClkDiv_4   4

Divide clock by 4.

Definition at line 62 of file em_burtc.h.

#define burtcClkDiv_64   64

Divide clock by 64.

Definition at line 66 of file em_burtc.h.

#define burtcClkDiv_8   8

Divide clock by 8.

Definition at line 63 of file em_burtc.h.

Function Documentation

uint32_t BURTC_CompareGet ( unsigned int  comp)

Get the BURTC compare value.

Parameters
[in]compCompare the channel index value, must be 0 for Giant/Leopard Gecko.
Returns
The currently configured value for this compare channel.

Definition at line 300 of file em_burtc.c.

void BURTC_CompareSet ( unsigned int  comp,
uint32_t  value 
)

Set BURTC compare channel.

Parameters
[in]compCompare the channel index, must be 0 for current devices.
[in]valueNew compare value.

Definition at line 270 of file em_burtc.c.

__STATIC_INLINE uint32_t BURTC_CounterGet ( void  )

Get BURTC counter.

Returns
BURTC counter value

Definition at line 372 of file em_burtc.h.

void BURTC_Enable ( bool  enable)

Enable or Disable BURTC peripheral.

Parameters
[in]enabletrue to enable, false to disable.

Definition at line 223 of file em_burtc.c.

References BURTC_Stop(), 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]burtcInitA pointer to the BURTC initialization structure.

Definition at line 128 of file em_burtc.c.

References BURTC_Enable(), BURTC_IntClear(), BURTC_Start(), 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]flagsBURTC 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 179 of file em_burtc.h.

Referenced by BURTC_Init().

__STATIC_INLINE void BURTC_IntDisable ( uint32_t  flags)

Disable one or more BURTC interrupts.

Parameters
[in]flagsBURTC 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 197 of file em_burtc.h.

__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]flagsBURTC 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 220 of file em_burtc.h.

__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 240 of file em_burtc.h.

__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 257 of file em_burtc.h.

__STATIC_INLINE void BURTC_IntSet ( uint32_t  flags)

Set one or more pending BURTC interrupts from SW.

Parameters
[in]flagsBURTC 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 277 of file em_burtc.h.

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 336 of file em_burtc.c.

References 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 340 of file em_burtc.h.

References 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 292 of file em_burtc.h.

__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 359 of file em_burtc.h.

References BURTC_SyncWait().

Referenced by BURTC_CounterReset(), BURTC_Enable(), and BURTC_Reset().