/******************************************************************************* * * CTS_HAL.h * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ******************************************************************************/ /***************************************************************************//** * @file CTS_Layer.h * * @brief * * @par Project: * MSP430 Capacitive Touch Library * * @par Developed using: * IAR Version : 5.10.6 [Kickstart] (5.10.6.30180) * CCS Version : 4.2.1.00004, w/support for GCC extensions (--gcc) * * * @version 1.0.0 Initial Release * * @par Supported API Calls: * - TI_CAPT_Init_Baseline() * - TI_CAPT_Update_Baseline() * - TI_CAPT_Reset_Tracking() * - TI_CAPT_Update_Tracking_DOI() * - TI_CAPT_Update_Tracking_Rate() * - TI_CAPT_Update_Baseline() * - TI_CAPT_Raw() * - TI_CAPT_Custom() * - TI_CAPT_Button() * - TI_CAPT_Buttons() * - TI_CAPT_Slider() * - TI_CAPT_Wheel() ******************************************************************************/ #ifndef CTS_LAYER #define CTS_LAYER #include "CTS_HAL.h" //! \name Status Register Definitions //! @{ // //! (bit 0): Event Flag: this indicates that a threshold crossing occured #define EVNT 0x01 //! (bit 1): Direction of Interest: This indicates if the measurement is looking //! for an increasing (set) or decreasing (clr) capacitance. #define DOI_MASK 0x02 #define DOI_INC 0x02 #define DOI_DEC 0x00 //! (bit 2): Past Event Flag: this indicates that a prior element within the //! sensor group has detected a threshold crossing #define PAST_EVNT 0x04 //! (bits 4-5): Tracking Rate in Direction of Interest: this indicates at what //! rate the baseline will adjust to the current measurement when the //! when the measurement is changing in the direction of interst but does not //! result in a threshold crossing: //! \n Very Slow //! \n Slow //! \n Medium //! \n Fast #define TRIDOI_VSLOW 0x00 #define TRIDOI_SLOW 0x10 #define TRIDOI_MED 0x20 #define TRIDOI_FAST 0x30 //! (bits 5-6): Tracking Rate Against Direction of Interest: this indicates at //! what rate the baseline will adjust to the current measurement when the //! when the measurement is changing against the direction of interst: //! \n Fast //! \n Medium //! \n Slow //! \n Very Slow #define TRADOI_FAST 0x00 #define TRADOI_MED 0x40 #define TRADOI_SLOW 0x80 #define TRADOI_VSLOW 0xC0 //! @} // API Calls void TI_CAPT_Init_Baseline(const struct Sensor*); void TI_CAPT_Update_Baseline(const struct Sensor*, uint8_t); void TI_CAPT_Reset_Tracking(void); void TI_CAPT_Update_Tracking_DOI(uint8_t); void TI_CAPT_Update_Tracking_Rate(uint8_t); void TI_CAPT_Raw(const struct Sensor*, uint16_t*); void TI_CAPT_Custom(const struct Sensor *, uint16_t*); uint8_t TI_CAPT_Button(const struct Sensor *); const struct Element * TI_CAPT_Buttons(const struct Sensor *); uint16_t TI_CAPT_Slider(const struct Sensor*); uint16_t TI_CAPT_Wheel(const struct Sensor*); // Internal Calls uint8_t Dominant_Element (const struct Sensor*, uint16_t*); #endif