diff options
Diffstat (limited to 'Libraries/TouchSense/tsl_user.c')
-rw-r--r-- | Libraries/TouchSense/tsl_user.c | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/Libraries/TouchSense/tsl_user.c b/Libraries/TouchSense/tsl_user.c deleted file mode 100644 index b7d50ef..0000000 --- a/Libraries/TouchSense/tsl_user.c +++ /dev/null @@ -1,292 +0,0 @@ -/** - ****************************************************************************** - * @file STM32F072B_Ex01_2TKeys_EVAL\src\tsl_user.c - * @author MCD Application Team - * @version V1.1.0 - * @date 04-April-2014 - * @brief Touch-Sensing user configuration and api file. - ****************************************************************************** - * @attention - * - * <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2> - * - * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.st.com/software_license_agreement_liberty_v2 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ****************************************************************************** - */ - -#include "tsl_user.h" - -//============================================================================== -// Channels -//============================================================================== - -// Source and Configuration (ROM) -CONST TSL_ChannelSrc_T MyChannels_Src[TSLPRM_TOTAL_CHANNELS] = -{ - { CHANNEL_0_SRC, CHANNEL_0_IO_MSK, CHANNEL_0_GRP_MSK }, - { CHANNEL_1_SRC, CHANNEL_1_IO_MSK, CHANNEL_1_GRP_MSK } -}; - -// Destination (ROM) -CONST TSL_ChannelDest_T MyChannels_Dest[TSLPRM_TOTAL_CHANNELS] = -{ - { CHANNEL_0_DEST }, - { CHANNEL_1_DEST } -}; - -// Data (RAM) -TSL_ChannelData_T MyChannels_Data[TSLPRM_TOTAL_CHANNELS]; - -//============================================================================== -// Banks -//============================================================================== - -// List (ROM) -CONST TSL_Bank_T MyBanks[TSLPRM_TOTAL_BANKS] = { - {&MyChannels_Src[0], &MyChannels_Dest[0], MyChannels_Data, BANK_0_NBCHANNELS, BANK_0_MSK_CHANNELS, BANK_0_MSK_GROUPS}, - {&MyChannels_Src[1], &MyChannels_Dest[1], MyChannels_Data, BANK_1_NBCHANNELS, BANK_1_MSK_CHANNELS, BANK_1_MSK_GROUPS} -}; - -//============================================================================== -// TouchKeys -//============================================================================== - -// Data (RAM) -TSL_TouchKeyData_T MyTKeys_Data[TSLPRM_TOTAL_TKEYS]; - -// Parameters (RAM) -TSL_TouchKeyParam_T MyTKeys_Param[TSLPRM_TOTAL_TKEYS]; - -// State Machine (ROM) - -void MyTKeys_ErrorStateProcess(void); -void MyTKeys_OffStateProcess(void); - -CONST TSL_State_T MyTKeys_StateMachine[] = -{ - // Calibration states - /* 0 */ { TSL_STATEMASK_CALIB, TSL_tkey_CalibrationStateProcess }, - /* 1 */ { TSL_STATEMASK_DEB_CALIB, TSL_tkey_DebCalibrationStateProcess }, - // Release states - /* 2 */ { TSL_STATEMASK_RELEASE, TSL_tkey_ReleaseStateProcess }, -#if TSLPRM_USE_PROX > 0 - /* 3 */ { TSL_STATEMASK_DEB_RELEASE_PROX, TSL_tkey_DebReleaseProxStateProcess }, -#else - /* 3 */ { TSL_STATEMASK_DEB_RELEASE_PROX, 0 }, -#endif - /* 4 */ { TSL_STATEMASK_DEB_RELEASE_DETECT, TSL_tkey_DebReleaseDetectStateProcess }, - /* 5 */ { TSL_STATEMASK_DEB_RELEASE_TOUCH, TSL_tkey_DebReleaseTouchStateProcess }, -#if TSLPRM_USE_PROX > 0 - // Proximity states - /* 6 */ { TSL_STATEMASK_PROX, TSL_tkey_ProxStateProcess }, - /* 7 */ { TSL_STATEMASK_DEB_PROX, TSL_tkey_DebProxStateProcess }, - /* 8 */ { TSL_STATEMASK_DEB_PROX_DETECT, TSL_tkey_DebProxDetectStateProcess }, - /* 9 */ { TSL_STATEMASK_DEB_PROX_TOUCH, TSL_tkey_DebProxTouchStateProcess }, -#else - /* 6 */ { TSL_STATEMASK_PROX, 0 }, - /* 7 */ { TSL_STATEMASK_DEB_PROX, 0 }, - /* 8 */ { TSL_STATEMASK_DEB_PROX_DETECT, 0 }, - /* 9 */ { TSL_STATEMASK_DEB_PROX_TOUCH, 0 }, -#endif - // Detect states - /* 10 */ { TSL_STATEMASK_DETECT, TSL_tkey_DetectStateProcess }, - /* 11 */ { TSL_STATEMASK_DEB_DETECT, TSL_tkey_DebDetectStateProcess }, - // Touch state - /* 12 */ { TSL_STATEMASK_TOUCH, TSL_tkey_TouchStateProcess }, - // Error states - /* 13 */ { TSL_STATEMASK_ERROR, MyTKeys_ErrorStateProcess }, - /* 14 */ { TSL_STATEMASK_DEB_ERROR_CALIB, TSL_tkey_DebErrorStateProcess }, - /* 15 */ { TSL_STATEMASK_DEB_ERROR_RELEASE, TSL_tkey_DebErrorStateProcess }, - /* 16 */ { TSL_STATEMASK_DEB_ERROR_PROX, TSL_tkey_DebErrorStateProcess }, - /* 17 */ { TSL_STATEMASK_DEB_ERROR_DETECT, TSL_tkey_DebErrorStateProcess }, - /* 18 */ { TSL_STATEMASK_DEB_ERROR_TOUCH, TSL_tkey_DebErrorStateProcess }, - // Other states - /* 19 */ { TSL_STATEMASK_OFF, MyTKeys_OffStateProcess } -}; - -// Methods for "extended" type (ROM) -CONST TSL_TouchKeyMethods_T MyTKeys_Methods = -{ - TSL_tkey_Init, - TSL_tkey_Process -}; - -// TouchKeys list (ROM) -CONST TSL_TouchKey_T MyTKeys[TSLPRM_TOTAL_TKEYS] = -{ - { &MyTKeys_Data[0], &MyTKeys_Param[0], &MyChannels_Data[CHANNEL_0_DEST], MyTKeys_StateMachine, &MyTKeys_Methods }, - { &MyTKeys_Data[1], &MyTKeys_Param[1], &MyChannels_Data[CHANNEL_1_DEST], MyTKeys_StateMachine, &MyTKeys_Methods } -}; - -//============================================================================== -// Generic Objects -//============================================================================== - -// List (ROM) -CONST TSL_Object_T MyObjects[TSLPRM_TOTAL_OBJECTS] = -{ - { TSL_OBJ_TOUCHKEY, (TSL_TouchKey_T *)&MyTKeys[0] }, - { TSL_OBJ_TOUCHKEY, (TSL_TouchKey_T *)&MyTKeys[1] } -}; - -// Group (RAM) -TSL_ObjectGroup_T MyObjGroup = -{ - &MyObjects[0], // First object - TSLPRM_TOTAL_OBJECTS, // Number of objects - 0x00, // State mask reset value - TSL_STATE_NOT_CHANGED,// Current state - 0, 0, 0 // ECS flags -}; - -//============================================================================== -// TSL Common Parameters placed in RAM or ROM -// --> external declaration in tsl_conf.h -//============================================================================== - -TSL_Params_T TSL_Params = -{ - TSLPRM_ACQ_MIN, - TSLPRM_ACQ_MAX, - TSLPRM_CALIB_SAMPLES, - TSLPRM_DTO, -#if TSLPRM_TOTAL_TKEYS > 0 - MyTKeys_StateMachine, // Default state machine for TKeys - &MyTKeys_Methods, // Default methods for TKeys -#endif -#if TSLPRM_TOTAL_LNRTS > 0 - MyLinRots_StateMachine, // Default state machine for LinRots - &MyLinRots_Methods // Default methods for LinRots -#endif -}; - -/* Private functions prototype -----------------------------------------------*/ - -/* Global variables ----------------------------------------------------------*/ - -__IO TSL_tTick_ms_T Gv_ECS_last_tick; // Hold the last time value for ECS -__IO uint32_t Gv_EOA; // Set by TS interrupt routine to indicate the End Of Acquisition - - -/** - * @brief Initialize the STMTouch Driver - * @param None - * @retval None - */ -void TSL_user_Init(void) -{ -#if TSLPRM_TSC_GPIO_CONFIG == 0 - // Automatic GPIO configuration not selected: - // This function must be created by the user to initialize the Touch Sensing GPIOs. - TSL_user_InitGPIOs(); -#endif - - TSL_obj_GroupInit(&MyObjGroup); // Init Objects - - TSL_Init(MyBanks); // Init timing and acquisition modules - - TSL_user_SetThresholds(); // Init thresholds for each object individually -} - - -/** - * @brief Execute STMTouch Driver main State machine - * @param None - * @retval status Return TSL_STATUS_OK if the acquisition is done - */ -TSL_Status_enum_T TSL_user_Action(void) -{ - static uint32_t idx_bank = 0; - static uint32_t config_done = 0; - TSL_Status_enum_T status; - - // Configure bank - if (!config_done) - { - TSL_acq_BankConfig(idx_bank); // Configure Bank - TSL_acq_BankStartAcq(); // Start Bank acquisition - config_done = 1; -#if TSLPRM_USE_ACQ_INTERRUPT > 0 - Gv_EOA = 0; // Will be set by the TS interrupt routine -#endif - } - - // Check end of acquisition -#if TSLPRM_USE_ACQ_INTERRUPT > 0 - if (Gv_EOA) // Set by the TS interrupt routine -#else - if (TSL_acq_BankWaitEOC() == TSL_STATUS_OK) -#endif - { - STMSTUDIO_LOCK; - TSL_acq_BankGetResult(idx_bank, 0, 0); // Get Bank Result - STMSTUDIO_UNLOCK; - idx_bank++; // Next bank - config_done = 0; - } - - // Process objects, DxS and ECS - // Check if all banks have been acquired - if (idx_bank > TSLPRM_TOTAL_BANKS-1) - { - // Reset flags for next banks acquisition - idx_bank = 0; - config_done = 0; - - // Process Objects - TSL_obj_GroupProcess(&MyObjGroup); - - // DxS processing (if TSLPRM_USE_DXS option is set) - TSL_dxs_FirstObj(&MyObjGroup); - - // ECS every 100ms - if (TSL_tim_CheckDelay_ms(100, &Gv_ECS_last_tick) == TSL_STATUS_OK) - { - if (TSL_ecs_Process(&MyObjGroup) == TSL_STATUS_OK) - { - //LED4_TOGGLE; - //GPIOB->ODR ^= GPIO_Pin_2; - } - else - { - //LED4_OFF; - //GPIOB->ODR ^= GPIO_Pin_2; - } - } - - status = TSL_STATUS_OK; // All banks have been acquired and sensors processed - - } - else - { - status = TSL_STATUS_BUSY; - } - - return status; -} - - -/** - * @brief Set thresholds for each object (optional). - * @param None - * @retval None - */ -void TSL_user_SetThresholds(void) -{ - // Example: Decrease the Detect thresholds for the TKEY 0 - //MyTKeys_Param[0].DetectInTh -= 10; - //MyTKeys_Param[0].DetectOutTh -= 10; -} - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |