EFM32 Giant Gecko Software Documentation
efm32gg-doc-4.2.1
|
Low Energy Sensor (LESENSE) peripheral API. More...
Go to the source code of this file.
Data Structures | |
struct | LESENSE_CoreCtrlDesc_TypeDef |
struct | LESENSE_TimeCtrlDesc_TypeDef |
struct | LESENSE_PerCtrlDesc_TypeDef |
struct | LESENSE_DecCtrlDesc_TypeDef |
struct | LESENSE_Init_TypeDef |
struct | LESENSE_ChDesc_TypeDef |
struct | LESENSE_ChAll_TypeDef |
struct | LESENSE_AltExDesc_TypeDef |
struct | LESENSE_ConfAltEx_TypeDef |
struct | LESENSE_DecStCond_TypeDef |
struct | LESENSE_DecStDesc_TypeDef |
struct | LESENSE_DecStAll_TypeDef |
Macros | |
#define | LESENSE_CORECTRL_DESC_DEFAULT |
#define | LESENSE_TIMECTRL_DESC_DEFAULT |
#define | LESENSE_PERCTRL_DESC_DEFAULT |
#define | LESENSE_DECCTRL_DESC_DEFAULT |
#define | LESENSE_INIT_DEFAULT |
#define | LESENSE_CH_CONF_DEFAULT |
#define | LESENSE_SCAN_CONF_DEFAULT |
#define | LESENSE_ALTEX_CH_CONF_DEFAULT |
#define | LESENSE_ALTEX_CONF_DEFAULT |
#define | LESENSE_ST_CONF_DEFAULT |
#define | LESENSE_DECODER_CONF_DEFAULT |
Enumerations | |
enum | LESENSE_ClkPresc_TypeDef { lesenseClkDiv_1 = 0, lesenseClkDiv_2 = 1, lesenseClkDiv_4 = 2, lesenseClkDiv_8 = 3, lesenseClkDiv_16 = 4, lesenseClkDiv_32 = 5, lesenseClkDiv_64 = 6, lesenseClkDiv_128 = 7 } |
enum | LESENSE_ScanMode_TypeDef { lesenseScanStartPeriodic = LESENSE_CTRL_SCANMODE_PERIODIC, lesenseScanStartOneShot = LESENSE_CTRL_SCANMODE_ONESHOT, lesenseScanStartPRS = LESENSE_CTRL_SCANMODE_PRS } |
enum | LESENSE_PRSSel_TypeDef { lesensePRSCh0 = 0, lesensePRSCh1 = 1, lesensePRSCh2 = 2, lesensePRSCh3 = 3, lesensePRSCh4 = 4, lesensePRSCh5 = 5, lesensePRSCh6 = 6, lesensePRSCh7 = 7, lesensePRSCh8 = 8, lesensePRSCh9 = 9, lesensePRSCh10 = 10, lesensePRSCh11 = 11 } |
enum | LESENSE_AltExMap_TypeDef { lesenseAltExMapALTEX = _LESENSE_CTRL_ALTEXMAP_ALTEX, lesenseAltExMapACMP = _LESENSE_CTRL_ALTEXMAP_ACMP } |
enum | LESENSE_BufTrigLevel_TypeDef { lesenseBufTrigHalf = LESENSE_CTRL_BUFIDL_HALFFULL, lesenseBufTrigFull = LESENSE_CTRL_BUFIDL_FULL } |
enum | LESENSE_DMAWakeUp_TypeDef { lesenseDMAWakeUpDisable = LESENSE_CTRL_DMAWU_DISABLE, lesenseDMAWakeUpBufValid = LESENSE_CTRL_DMAWU_BUFDATAV, lesenseDMAWakeUpBufLevel = LESENSE_CTRL_DMAWU_BUFLEVEL } |
enum | LESENSE_BiasMode_TypeDef { lesenseBiasModeDutyCycle = LESENSE_BIASCTRL_BIASMODE_DUTYCYCLE, lesenseBiasModeHighAcc = LESENSE_BIASCTRL_BIASMODE_HIGHACC, lesenseBiasModeDontTouch = LESENSE_BIASCTRL_BIASMODE_DONTTOUCH } |
enum | LESENSE_ScanConfSel_TypeDef { lesenseScanConfDirMap = LESENSE_CTRL_SCANCONF_DIRMAP, lesenseScanConfInvMap = LESENSE_CTRL_SCANCONF_INVMAP, lesenseScanConfToggle = LESENSE_CTRL_SCANCONF_TOGGLE, lesenseScanConfDecDef = LESENSE_CTRL_SCANCONF_DECDEF } |
enum | LESENSE_ControlDACData_TypeDef { lesenseDACIfData = _LESENSE_PERCTRL_DACCH0DATA_DACDATA, lesenseACMPThres = _LESENSE_PERCTRL_DACCH0DATA_ACMPTHRES } |
enum | LESENSE_ControlDACConv_TypeDef { lesenseDACConvModeDisable = _LESENSE_PERCTRL_DACCH0CONV_DISABLE, lesenseDACConvModeContinuous = _LESENSE_PERCTRL_DACCH0CONV_CONTINUOUS, lesenseDACConvModeSampleHold = _LESENSE_PERCTRL_DACCH0CONV_SAMPLEHOLD, lesenseDACConvModeSampleOff = _LESENSE_PERCTRL_DACCH0CONV_SAMPLEOFF } |
enum | LESENSE_ControlDACOut_TypeDef { lesenseDACOutModeDisable = _LESENSE_PERCTRL_DACCH0OUT_DISABLE, lesenseDACOutModePin = _LESENSE_PERCTRL_DACCH0OUT_PIN, lesenseDACOutModeADCACMP = _LESENSE_PERCTRL_DACCH0OUT_ADCACMP, lesenseDACOutModePinADCACMP = _LESENSE_PERCTRL_DACCH0OUT_PINADCACMP } |
enum | LESENSE_DACRef_TypeDef { lesenseDACRefVdd = LESENSE_PERCTRL_DACREF_VDD, lesenseDACRefBandGap = LESENSE_PERCTRL_DACREF_BANDGAP } |
enum | LESENSE_ControlACMP_TypeDef { lesenseACMPModeDisable = _LESENSE_PERCTRL_ACMP0MODE_DISABLE, lesenseACMPModeMux = _LESENSE_PERCTRL_ACMP0MODE_MUX, lesenseACMPModeMuxThres = _LESENSE_PERCTRL_ACMP0MODE_MUXTHRES } |
enum | LESENSE_WarmupMode_TypeDef { lesenseWarmupModeNormal = LESENSE_PERCTRL_WARMUPMODE_NORMAL, lesenseWarmupModeACMP = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPWARM, lesenseWarmupModeDAC = LESENSE_PERCTRL_WARMUPMODE_KEEPDACWARM, lesenseWarmupModeKeepWarm = LESENSE_PERCTRL_WARMUPMODE_KEEPACMPDACWARM } |
enum | LESENSE_DecInput_TypeDef { lesenseDecInputSensorSt = LESENSE_DECCTRL_INPUT_SENSORSTATE, lesenseDecInputPRS = LESENSE_DECCTRL_INPUT_PRS } |
enum | LESENSE_ChSampleMode_TypeDef { lesenseSampleModeCounter = LESENSE_CH_INTERACT_SAMPLE_COUNTER, lesenseSampleModeACMP = LESENSE_CH_INTERACT_SAMPLE_ACMP } |
enum | LESENSE_ChIntMode_TypeDef { lesenseSetIntNone = LESENSE_CH_INTERACT_SETIF_NONE, lesenseSetIntLevel = LESENSE_CH_INTERACT_SETIF_LEVEL, lesenseSetIntPosEdge = LESENSE_CH_INTERACT_SETIF_POSEDGE, lesenseSetIntNegEdge = LESENSE_CH_INTERACT_SETIF_NEGEDGE } |
enum | LESENSE_ChPinExMode_TypeDef { lesenseChPinExDis = LESENSE_CH_INTERACT_EXMODE_DISABLE, lesenseChPinExHigh = LESENSE_CH_INTERACT_EXMODE_HIGH, lesenseChPinExLow = LESENSE_CH_INTERACT_EXMODE_LOW, lesenseChPinExDACOut = LESENSE_CH_INTERACT_EXMODE_DACOUT } |
enum | LESENSE_ChPinIdleMode_TypeDef { lesenseChPinIdleDis = _LESENSE_IDLECONF_CH0_DISABLE, lesenseChPinIdleHigh = _LESENSE_IDLECONF_CH0_HIGH, lesenseChPinIdleLow = _LESENSE_IDLECONF_CH0_LOW, lesenseChPinIdleDACCh0 = _LESENSE_IDLECONF_CH0_DACCH0, lesenseChPinIdleDACCh1 = _LESENSE_IDLECONF_CH12_DACCH1 } |
enum | LESENSE_ChClk_TypeDef { lesenseClkLF = _LESENSE_CH_INTERACT_EXCLK_LFACLK, lesenseClkHF = _LESENSE_CH_INTERACT_EXCLK_AUXHFRCO } |
enum | LESENSE_ChCompMode_TypeDef { lesenseCompModeLess = LESENSE_CH_EVAL_COMP_LESS, lesenseCompModeGreaterOrEq = LESENSE_CH_EVAL_COMP_GE } |
enum | LESENSE_AltExPinIdle_TypeDef { lesenseAltExPinIdleDis = _LESENSE_ALTEXCONF_IDLECONF0_DISABLE, lesenseAltExPinIdleHigh = _LESENSE_ALTEXCONF_IDLECONF0_HIGH, lesenseAltExPinIdleLow = _LESENSE_ALTEXCONF_IDLECONF0_LOW } |
enum | LESENSE_StTransAct_TypeDef { lesenseTransActNone = LESENSE_ST_TCONFA_PRSACT_NONE, lesenseTransActPRS0 = LESENSE_ST_TCONFA_PRSACT_PRS0, lesenseTransActPRS1 = LESENSE_ST_TCONFA_PRSACT_PRS1, lesenseTransActPRS01 = LESENSE_ST_TCONFA_PRSACT_PRS01, lesenseTransActPRS2 = LESENSE_ST_TCONFA_PRSACT_PRS2, lesenseTransActPRS02 = LESENSE_ST_TCONFA_PRSACT_PRS02, lesenseTransActPRS12 = LESENSE_ST_TCONFA_PRSACT_PRS12, lesenseTransActPRS012 = LESENSE_ST_TCONFA_PRSACT_PRS012, lesenseTransActUp = LESENSE_ST_TCONFA_PRSACT_UP, lesenseTransActDown = LESENSE_ST_TCONFA_PRSACT_DOWN, lesenseTransActUpAndPRS2 = LESENSE_ST_TCONFA_PRSACT_UPANDPRS2, lesenseTransActDownAndPRS2 = LESENSE_ST_TCONFA_PRSACT_DOWNANDPRS2 } |
Functions | |
void | LESENSE_Init (LESENSE_Init_TypeDef const *init, bool const reqReset) |
Initialize the LESENSE module. More... | |
void | LESENSE_Reset (void) |
Reset the LESENSE module. More... | |
uint32_t | LESENSE_ScanFreqSet (uint32_t refFreq, uint32_t const scanFreq) |
Set scan frequency for periodic scanning. More... | |
void | LESENSE_ScanModeSet (LESENSE_ScanMode_TypeDef const scanMode, bool const start) |
Set scan mode of the LESENSE channels. More... | |
void | LESENSE_StartDelaySet (uint8_t const startDelay) |
Set start delay of sensor interaction on each channel. More... | |
void | LESENSE_ClkDivSet (LESENSE_ChClk_TypeDef const clk, LESENSE_ClkPresc_TypeDef const clkDiv) |
Set clock division for LESENSE timers. More... | |
void | LESENSE_ChannelAllConfig (LESENSE_ChAll_TypeDef const *confChAll) |
Configure all (16) LESENSE sensor channels. More... | |
void | LESENSE_ChannelConfig (LESENSE_ChDesc_TypeDef const *confCh, uint32_t const chIdx) |
Configure a single LESENSE sensor channel. More... | |
void | LESENSE_ChannelEnable (uint8_t const chIdx, bool const enaScanCh, bool const enaPin) |
Enable/disable LESENSE scan channel and the pin assigned to it. More... | |
void | LESENSE_ChannelEnableMask (uint16_t chMask, uint16_t pinMask) |
Enable/disable LESENSE scan channel and the pin assigned to it. More... | |
void | LESENSE_ChannelTimingSet (uint8_t const chIdx, uint8_t const exTime, uint8_t const sampleDelay, uint8_t const measDelay) |
Set LESENSE channel timing parameters. More... | |
void | LESENSE_ChannelThresSet (uint8_t const chIdx, uint16_t const acmpThres, uint16_t const cntThres) |
Set LESENSE channel threshold parameters. More... | |
void | LESENSE_AltExConfig (LESENSE_ConfAltEx_TypeDef const *confAltEx) |
Configure the LESENSE alternate excitation modes. More... | |
void | LESENSE_DecoderStateAllConfig (LESENSE_DecStAll_TypeDef const *confDecStAll) |
Configure all LESENSE decoder states. More... | |
void | LESENSE_DecoderStateConfig (LESENSE_DecStDesc_TypeDef const *confDecSt, uint32_t const decSt) |
Configure a single LESENSE decoder state. More... | |
void | LESENSE_DecoderStateSet (uint32_t decSt) |
Set LESENSE decoder state. More... | |
uint32_t | LESENSE_DecoderStateGet (void) |
Get the current state of the LESENSE decoder. More... | |
void | LESENSE_ScanStart (void) |
Start scanning of sensors. More... | |
void | LESENSE_ScanStop (void) |
Stop scanning of sensors. More... | |
void | LESENSE_DecoderStart (void) |
Start LESENSE decoder. More... | |
void | LESENSE_ResultBufferClear (void) |
Clear result buffer. More... | |
__STATIC_INLINE void | LESENSE_DecoderStop (void) |
Stop LESENSE decoder. More... | |
__STATIC_INLINE uint32_t | LESENSE_StatusGet (void) |
Get the current status of LESENSE. More... | |
__STATIC_INLINE void | LESENSE_StatusWait (uint32_t flag) |
Wait until the status of LESENSE is equal to what requested. More... | |
__STATIC_INLINE uint32_t | LESENSE_ChannelActiveGet (void) |
Get the currently active channel index. More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultGet (void) |
Get the latest scan comparison result (1 bit / channel). More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultDataGet (void) |
Get the oldest unread data from the result buffer. More... | |
__STATIC_INLINE uint32_t | LESENSE_ScanResultDataBufferGet (uint32_t idx) |
Get data from the result data buffer. More... | |
__STATIC_INLINE uint32_t | LESENSE_SensorStateGet (void) |
Get the current state of the LESENSE sensor. More... | |
__STATIC_INLINE void | LESENSE_RAMPowerDown (void) |
Shut off power to the LESENSE RAM, disables LESENSE. More... | |
__STATIC_INLINE void | LESENSE_IntClear (uint32_t flags) |
Clear one or more pending LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntEnable (uint32_t flags) |
Enable one or more LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntDisable (uint32_t flags) |
Disable one or more LESENSE interrupts. More... | |
__STATIC_INLINE void | LESENSE_IntSet (uint32_t flags) |
Set one or more pending LESENSE interrupts from SW. More... | |
__STATIC_INLINE uint32_t | LESENSE_IntGet (void) |
Get pending LESENSE interrupt flags. More... | |
__STATIC_INLINE uint32_t | LESENSE_IntGetEnabled (void) |
Get enabled and pending LESENSE interrupt flags. More... | |
(C) Copyright 2015 Silicon Labs, http://www.silabs.com
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no obligation to support this Software. Silicon Labs is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.
Silicon Labs will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.
Definition in file em_lesense.h.