LETIMEREMLIB
Detailed Description
Low Energy Timer (LETIMER) Peripheral API.
This module contains functions to control the LETIMER peripheral of Silicon Labs 32-bit MCUs and SoCs. The LETIMER is a down-counter that can keep track of time and output configurable waveforms.
| Data Structures | |
| struct | LETIMER_Init_TypeDef | 
| Macros | |
| #define | LETIMER_INIT_DEFAULT | 
| Enumerations | |
| enum | LETIMER_RepeatMode_TypeDef
         
         { letimerRepeatFree = _LETIMER_CTRL_REPMODE_FREE, letimerRepeatOneshot = _LETIMER_CTRL_REPMODE_ONESHOT, letimerRepeatBuffered = _LETIMER_CTRL_REPMODE_BUFFERED, letimerRepeatDouble = _LETIMER_CTRL_REPMODE_DOUBLE } | 
| enum | LETIMER_UFOA_TypeDef
         
         { letimerUFOANone = _LETIMER_CTRL_UFOA0_NONE, letimerUFOAToggle = _LETIMER_CTRL_UFOA0_TOGGLE, letimerUFOAPulse = _LETIMER_CTRL_UFOA0_PULSE, letimerUFOAPwm = _LETIMER_CTRL_UFOA0_PWM } | 
| Functions | |
| uint32_t | LETIMER_CompareGet ( LETIMER_TypeDef *letimer, unsigned int comp) | 
| Get LETIMER compare register value. | |
| void | LETIMER_CompareSet ( LETIMER_TypeDef *letimer, unsigned int comp, uint32_t value) | 
| Set LETIMER compare register value. | |
| __STATIC_INLINE uint32_t | LETIMER_CounterGet ( LETIMER_TypeDef *letimer) | 
| Get LETIMER counter value. | |
| void | LETIMER_Enable ( LETIMER_TypeDef *letimer, bool enable) | 
| Start/stop LETIMER. | |
| void | LETIMER_Init ( LETIMER_TypeDef *letimer, const LETIMER_Init_TypeDef *init) | 
| Initialize LETIMER. | |
| __STATIC_INLINE void | LETIMER_IntClear ( LETIMER_TypeDef *letimer, uint32_t flags) | 
| Clear one or more pending LETIMER interrupts. | |
| __STATIC_INLINE void | LETIMER_IntDisable ( LETIMER_TypeDef *letimer, uint32_t flags) | 
| Disable one or more LETIMER interrupts. | |
| __STATIC_INLINE void | LETIMER_IntEnable ( LETIMER_TypeDef *letimer, uint32_t flags) | 
| Enable one or more LETIMER interrupts. | |
| __STATIC_INLINE uint32_t | LETIMER_IntGet ( LETIMER_TypeDef *letimer) | 
| Get pending LETIMER interrupt flags. | |
| __STATIC_INLINE uint32_t | LETIMER_IntGetEnabled ( LETIMER_TypeDef *letimer) | 
| Get enabled and pending LETIMER interrupt flags. | |
| __STATIC_INLINE void | LETIMER_IntSet ( LETIMER_TypeDef *letimer, uint32_t flags) | 
| Set one or more pending LETIMER interrupts from SW. | |
| uint32_t | LETIMER_RepeatGet ( LETIMER_TypeDef *letimer, unsigned int rep) | 
| Get LETIMER repeat register value. | |
| void | LETIMER_RepeatSet ( LETIMER_TypeDef *letimer, unsigned int rep, uint32_t value) | 
| Set LETIMER repeat counter register value. | |
| void | LETIMER_Reset ( LETIMER_TypeDef *letimer) | 
| Reset LETIMER to same state as after a HW reset. | |
Macro Definition Documentation
| #define LETIMER_INIT_DEFAULT | 
Default config for LETIMER init structure.
        Definition at line
        
         126
        
        of file
        
         em_letimer.h
        
        .
       
Referenced by MIC_init() .
Enumeration Type Documentation
Repeat mode.
        Definition at line
        
         59
        
        of file
        
         em_letimer.h
        
        .
       
| enum LETIMER_UFOA_TypeDef | 
Underflow action on output.
        Definition at line
        
         77
        
        of file
        
         em_letimer.h
        
        .
       
Function Documentation
| uint32_t LETIMER_CompareGet | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| unsigned int | 
            comp
            | ||
| ) | 
Get LETIMER compare register value.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block [in] compCompare register to get, either 0 or 1 
- Returns
- Compare register value, 0 if invalid register selected.
        Definition at line
        
         135
        
        of file
        
         em_letimer.c
        
        .
       
References LETIMER_TypeDef::COMP0 , and LETIMER_TypeDef::COMP1 .
| void LETIMER_CompareSet | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| unsigned int | 
            comp,
            | ||
| uint32_t | 
            value
            | ||
| ) | 
Set LETIMER compare register value.
- Note
- The setting of a compare register requires synchronization into the low frequency domain. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family, see comment in the LETIMER_Sync() internal function call.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block [in] compCompare register to set, either 0 or 1 [in] valueInitialization value (<= 0x0000ffff) 
        Definition at line
        
         180
        
        of file
        
         em_letimer.c
        
        .
       
References _LETIMER_COMP0_COMP0_MASK , _LETIMER_COMP0_COMP0_SHIFT , LETIMER_TypeDef::COMP0 , and LETIMER_TypeDef::COMP1 .
Referenced by MIC_init() .
| __STATIC_INLINE uint32_t LETIMER_CounterGet | ( | LETIMER_TypeDef * | 
            letimer
            | ) | 
Get LETIMER counter value.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. 
- Returns
- Current LETIMER counter value.
        Definition at line
        
         159
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::CNT .
| void LETIMER_Enable | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| bool | 
            enable
            | ||
| ) | 
Start/stop LETIMER.
- Note
- The enabling/disabling of the LETIMER modifies the LETIMER CMD register which requires synchronization into the low frequency domain. If this register is modified before a previous update to the same register has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family, see comment in the LETIMER_Sync() internal function call.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] enabletrue to enable counting, false to disable. 
        Definition at line
        
         233
        
        of file
        
         em_letimer.c
        
        .
       
References LETIMER_TypeDef::CMD , LETIMER_CMD_START , LETIMER_CMD_STOP , and LETIMER_SYNCBUSY_CMD .
| void LETIMER_Init | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| const LETIMER_Init_TypeDef * | 
            init
            | ||
| ) | 
Initialize LETIMER.
Note that the compare/repeat values must be set separately with LETIMER_CompareSet() and LETIMER_RepeatSet() . That should probably be done prior to the use of this function if configuring the LETIMER to start when initialization is completed.
- Note
- The initialization of the LETIMER modifies the LETIMER CTRL/CMD registers which require synchronization into the low frequency domain. If any of those registers are modified before a previous update to the same register has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family, see comment in the LETIMER_Sync() internal function call.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] initPointer to LETIMER initialization structure. 
        Definition at line
        
         323
        
        of file
        
         em_letimer.c
        
        .
       
References _LETIMER_CTRL_REPMODE_SHIFT , _LETIMER_CTRL_UFOA0_SHIFT , _LETIMER_CTRL_UFOA1_SHIFT , LETIMER_Init_TypeDef::bufTop , LETIMER_TypeDef::CMD , LETIMER_Init_TypeDef::comp0Top , LETIMER_TypeDef::CTRL , LETIMER_Init_TypeDef::debugRun , LETIMER_Init_TypeDef::enable , LETIMER_CMD_START , LETIMER_CMD_STOP , LETIMER_CTRL_BUFTOP , LETIMER_CTRL_COMP0TOP , LETIMER_CTRL_DEBUGRUN , LETIMER_CTRL_OPOL0 , LETIMER_CTRL_OPOL1 , LETIMER_STATUS_RUNNING , LETIMER_SYNCBUSY_CMD , LETIMER_Init_TypeDef::out0Pol , LETIMER_Init_TypeDef::out1Pol , LETIMER_Init_TypeDef::repMode , LETIMER_TypeDef::STATUS , LETIMER_Init_TypeDef::ufoa0 , and LETIMER_Init_TypeDef::ufoa1 .
Referenced by MIC_init() .
| __STATIC_INLINE void LETIMER_IntClear | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| uint32_t | 
            flags
            | ||
| ) | 
Clear one or more pending LETIMER interrupts.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] flagsPending LETIMER interrupt source to clear. Use a bitwise logic OR combination of valid interrupt flags for the LETIMER module (LETIMER_IF_nnn). 
        Definition at line
        
         182
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IFC .
| __STATIC_INLINE void LETIMER_IntDisable | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| uint32_t | 
            flags
            | ||
| ) | 
Disable one or more LETIMER interrupts.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] flagsLETIMER interrupt sources to disable. Use a bitwise logic OR combination of valid interrupt flags for the LETIMER module (LETIMER_IF_nnn). 
        Definition at line
        
         198
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IEN .
| __STATIC_INLINE void LETIMER_IntEnable | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| uint32_t | 
            flags
            | ||
| ) | 
Enable one or more LETIMER interrupts.
- Note
- Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. Consider using LETIMER_IntClear() prior to enabling if such a pending interrupt should be ignored.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] flagsLETIMER interrupt sources to enable. Use a bitwise logic OR combination of valid interrupt flags for the LETIMER module (LETIMER_IF_nnn). 
        Definition at line
        
         219
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IEN .
| __STATIC_INLINE uint32_t LETIMER_IntGet | ( | LETIMER_TypeDef * | 
            letimer
            | ) | 
Get pending LETIMER interrupt flags.
- Note
- The event bits are not cleared by the use of this function.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. 
- Returns
- LETIMER interrupt sources pending. A bitwise logic OR combination of valid interrupt flags for the LETIMER module (LETIMER_IF_nnn).
        Definition at line
        
         238
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IF .
| __STATIC_INLINE uint32_t LETIMER_IntGetEnabled | ( | LETIMER_TypeDef * | 
            letimer
            | ) | 
Get enabled and pending LETIMER interrupt flags.
Useful for handling more interrupt sources in the same interrupt handler.
- Note
- The event bits are not cleared by the use of this function.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. 
- Returns
- 
         Pending and enabled LETIMER interrupt sources. The return value is the bitwise AND combination of
         - the OR combination of enabled interrupt sources in LETIMER_IEN_nnn register (LETIMER_IEN_nnn) and
- the OR combination of valid interrupt flags of the LETIMER module (LETIMER_IF_nnn).
 
        Definition at line
        
         264
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IEN , and LETIMER_TypeDef::IF .
| __STATIC_INLINE void LETIMER_IntSet | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| uint32_t | 
            flags
            | ||
| ) | 
Set one or more pending LETIMER interrupts from SW.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. [in] flagsLETIMER interrupt sources to set to pending. Use a bitwise logic OR combination of valid interrupt flags for the LETIMER module (LETIMER_IF_nnn). 
        Definition at line
        
         287
        
        of file
        
         em_letimer.h
        
        .
       
References LETIMER_TypeDef::IFS .
| uint32_t LETIMER_RepeatGet | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| unsigned int | 
            rep
            | ||
| ) | 
Get LETIMER repeat register value.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block [in] repRepeat register to get, either 0 or 1 
- Returns
- Repeat register value, 0 if invalid register selected.
        Definition at line
        
         403
        
        of file
        
         em_letimer.c
        
        .
       
References LETIMER_TypeDef::REP0 , and LETIMER_TypeDef::REP1 .
| void LETIMER_RepeatSet | ( | LETIMER_TypeDef * | 
            letimer,
            | 
| unsigned int | 
            rep,
            | ||
| uint32_t | 
            value
            | ||
| ) | 
Set LETIMER repeat counter register value.
- Note
- The setting of a repeat counter register requires synchronization into the low frequency domain. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. This only applies to the Gecko Family, see comment in the LETIMER_Sync() internal function call.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block [in] repRepeat counter register to set, either 0 or 1 [in] valueInitialization value (<= 0x0000ffff) 
        Definition at line
        
         448
        
        of file
        
         em_letimer.c
        
        .
       
References _LETIMER_REP0_REP0_MASK , _LETIMER_REP0_REP0_SHIFT , LETIMER_TypeDef::REP0 , and LETIMER_TypeDef::REP1 .
Referenced by MIC_init() .
| void LETIMER_Reset | ( | LETIMER_TypeDef * | 
            letimer
            | ) | 
Reset LETIMER to same state as after a HW reset.
- Note
- The ROUTE register is NOT reset by this function, in order to allow for centralized setup of this feature.
- Parameters
- 
         [in] letimerPointer to LETIMER peripheral register block. 
        Definition at line
        
         502
        
        of file
        
         em_letimer.c
        
        .
       
References _LETIMER_COMP0_RESETVALUE , _LETIMER_COMP1_RESETVALUE , _LETIMER_CTRL_RESETVALUE , _LETIMER_IEN_RESETVALUE , _LETIMER_IFC_MASK , _LETIMER_REP0_RESETVALUE , _LETIMER_REP1_RESETVALUE , LETIMER_TypeDef::CMD , LETIMER_TypeDef::COMP0 , LETIMER_TypeDef::COMP1 , LETIMER_TypeDef::CTRL , LETIMER_TypeDef::IEN , LETIMER_TypeDef::IFC , LETIMER_CMD_CLEAR , LETIMER_CMD_CTO0 , LETIMER_CMD_CTO1 , LETIMER_CMD_STOP , LETIMER_TypeDef::REP0 , and LETIMER_TypeDef::REP1 .