caplesense.c File Reference

Capacitive sense driver.

License

Copyright 2018 Silicon Laboratories Inc. www.silabs.com

The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.

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  )

Variable Documentation

volatile uint32_t channelMaxValues[LESENSE_CHANNELS]
static
Initial value:
=
{
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1
}

This stores the maximum values seen by a channel.

Parameters
LESENSE_CHANNELSVector of channels.

Definition at line 51 of file caplesense.c.

Referenced by CAPLESENSE_getNormalizedVal(), CAPLESENSE_getSliderPosition(), CAPSENSE_getNormalizedVal(), CAPSENSE_getPressed(), CAPSENSE_getSliderPosition(), LESENSE_IRQHandler(), and TIMER0_IRQHandler().

const bool channelsInUse[LESENSE_CHANNELS] = LESENSE_CAPSENSE_CH_IN_USE
static

A bit vector which represents the channels to iterate through.

Parameters
LESENSE_CHANNELSVector of channels.

Definition at line 63 of file caplesense.c.

Referenced by CAPLESENSE_setupLESENSE(), CAPSENSE_Sense(), and LESENSE_IRQHandler().

volatile uint32_t channelValues[LESENSE_CHANNELS]
static
Initial value:
=
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
}

This vector stores the latest read values from LESENSE.

Parameters
LESENSE_CHANNELSVector of channels.

Definition at line 39 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().

volatile uint8_t currentChannel
static

The current channel we are sensing

Definition at line 81 of file caplesense.c.

Referenced by CAPSENSE_Sense(), LESENSE_IRQHandler(), and TIMER0_IRQHandler().

void(* lesenseChCb) (void)
static

Callback function for LESENSE interrupts.

Definition at line 78 of file caplesense.c.

Referenced by CAPLESENSE_setupCallbacks(), and LESENSE_IRQHandler().

void(* lesenseScanCb) (void)
static

Local variablesCallback function for LESENSE interrupts.

Definition at line 76 of file caplesense.c.

Referenced by CAPLESENSE_setupCallbacks(), and LESENSE_IRQHandler().