caplesense.c File Reference
Capacitive sense driver.
License
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
SPDX-License-Identifier: Zlib
The licensor of this software is Silicon Laboratories Inc.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
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:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.
Definition in file
caplesense.c
.
#include "em_device.h"
#include "
caplesense.h
"
#include "
em_emu.h
"
#include "
em_acmp.h
"
#include "
em_assert.h
"
#include "
em_cmu.h
"
#include "
em_gpio.h
"
#include "
em_core.h
"
#include "
em_lesense.h
"
#include "caplesenseconfig.h"
Functions |
|
uint32_t | CAPLESENSE_getNormalizedVal (uint8_t channel) |
Get the current normalized channelValue for a channel.
|
|
uint8_t | CAPLESENSE_getSegmentChannel (uint8_t capSegment) |
Get the channelValue for a sensor segment.
|
|
int32_t | CAPLESENSE_getSliderPosition (void) |
Get the position of the slider.
|
|
uint32_t | CAPLESENSE_getVal (uint8_t channel) |
Get the current channelValue for a channel.
|
|
void | CAPLESENSE_Init (bool sleep) |
Initializes the capacative sense system without LESENSE.
|
|
void | CAPLESENSE_setupACMP (void) |
Setup the ACMP.
|
|
void | CAPLESENSE_setupCallbacks (void(*scanCb)(void), void(*chCb)(void)) |
LESENSE callback setup.
|
|
void | CAPLESENSE_setupCMU (void) |
Setup the CMU.
|
|
void | CAPLESENSE_setupGPIO (void) |
Setup the GPIO.
|
|
void | CAPLESENSE_setupLESENSE (bool sleep) |
Setup the LESENSE for capavitive sensing.
|
|
void | CAPLESENSE_Sleep (void) |
Send the capacative sense system to sleep mode.
|
|
void | LESENSE_IRQHandler (void) |
LESENSE interrupt handler.
|
|
Variables |
|
static volatile uint32_t | channelMaxValues [LESENSE_CHANNELS] |
This stores the maximum values seen by a channel.
|
|
static const bool | channelsInUse [LESENSE_CHANNELS] = LESENSE_CAPSENSE_CH_IN_USE |
A bit vector which represents the channels to iterate through.
|
|
static volatile uint32_t | channelValues [LESENSE_CHANNELS] |
This vector stores the latest read values from LESENSE.
|
|
static volatile uint8_t | currentChannel |
static void(* | lesenseChCb )(void) |
static void(* | lesenseScanCb )(void) |
Function Documentation
void CAPLESENSE_setupCMU | ( | void |
|
) |
Setup the CMU.
Prototypes
Definition at line
99
of file
caplesense.c
.
References CMU_ClockDivSet() , CMU_ClockEnable() , CMU_ClockSelectSet() , cmuClkDiv_1 , cmuClock_ACMP0 , cmuClock_ACMP1 , cmuClock_GPIO , cmuClock_HF , cmuClock_HFPER , cmuClock_LESENSE , cmuClock_LFA , cmuClock_LFB , cmuSelect_Disabled , cmuSelect_HFRCO , cmuSelect_LFRCO , and SystemCoreClockUpdate() .
Referenced by CAPLESENSE_Init() .
Variable Documentation
|
static |
This stores the maximum values seen by a channel.
- Parameters
-
LESENSE_CHANNELS
Vector of channels.
Definition at line
64
of file
caplesense.c
.
Referenced by CAPLESENSE_getNormalizedVal() , CAPLESENSE_getSliderPosition() , CAPSENSE_getNormalizedVal() , CAPSENSE_getPressed() , CAPSENSE_getSliderPosition() , LESENSE_IRQHandler() , and TIMER0_IRQHandler() .
|
static |
A bit vector which represents the channels to iterate through.
- Parameters
-
LESENSE_CHANNELS
Vector of channels.
Definition at line
76
of file
caplesense.c
.
Referenced by CAPLESENSE_setupLESENSE() , CAPSENSE_Sense() , and LESENSE_IRQHandler() .
|
static |
This vector stores the latest read values from LESENSE.
- Parameters
-
LESENSE_CHANNELS
Vector of channels.
Definition at line
52
of file
caplesense.c
.
Referenced by CAPLESENSE_getNormalizedVal() , CAPLESENSE_getSliderPosition() , CAPLESENSE_getVal() , CAPSENSE_getNormalizedVal() , CAPSENSE_getPressed() , CAPSENSE_getSliderPosition() , CAPSENSE_getVal() , LESENSE_IRQHandler() , and TIMER0_IRQHandler() .
|
static |
The current channel we are sensing
Definition at line
94
of file
caplesense.c
.
Referenced by CAPSENSE_Sense() , LESENSE_IRQHandler() , and TIMER0_IRQHandler() .
|
static |
Callback function for LESENSE interrupts.
Definition at line
91
of file
caplesense.c
.
Referenced by CAPLESENSE_setupCallbacks() , and LESENSE_IRQHandler() .
|
static |
Local variablesCallback function for LESENSE interrupts.
Definition at line
89
of file
caplesense.c
.
Referenced by CAPLESENSE_setupCallbacks() , and LESENSE_IRQHandler() .