PSoC 6 pioneer kit multi library code for emwin driven tft display, capsense and mechanical button input.

Dependencies:   PinDetect

Committer:
reedas
Date:
Fri Oct 18 21:14:25 2019 +0000
Revision:
3:1edcda6af8df
Parent:
1:f8f4e789361f
Example of using different libraries to build a program. (emwin graphics, Pindetect key debouncing, capsense switch input.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
reedas 1:f8f4e789361f 1 /*******************************************************************************
reedas 1:f8f4e789361f 2 * File Name: cycfg_capsense.c
reedas 1:f8f4e789361f 3 * Version: 2.0
reedas 1:f8f4e789361f 4 *
reedas 1:f8f4e789361f 5 * Description:
reedas 1:f8f4e789361f 6 * CapSense middleware configuration
reedas 1:f8f4e789361f 7 * This file should not be modified. It was automatically generated by
reedas 1:f8f4e789361f 8 * CapSense Configurator 2.0.0 build 566
reedas 1:f8f4e789361f 9 *
reedas 1:f8f4e789361f 10 ********************************************************************************
reedas 1:f8f4e789361f 11 * Copyright 2019 Cypress Semiconductor Corporation
reedas 1:f8f4e789361f 12 * SPDX-License-Identifier: Apache-2.0
reedas 1:f8f4e789361f 13 *
reedas 1:f8f4e789361f 14 * Licensed under the Apache License, Version 2.0 (the "License");
reedas 1:f8f4e789361f 15 * you may not use this file except in compliance with the License.
reedas 1:f8f4e789361f 16 * You may obtain a copy of the License at
reedas 1:f8f4e789361f 17 *
reedas 1:f8f4e789361f 18 * http://www.apache.org/licenses/LICENSE-2.0
reedas 1:f8f4e789361f 19 *
reedas 1:f8f4e789361f 20 * Unless required by applicable law or agreed to in writing, software
reedas 1:f8f4e789361f 21 * distributed under the License is distributed on an "AS IS" BASIS,
reedas 1:f8f4e789361f 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
reedas 1:f8f4e789361f 23 * See the License for the specific language governing permissions and
reedas 1:f8f4e789361f 24 * limitations under the License.
reedas 1:f8f4e789361f 25 *******************************************************************************/
reedas 1:f8f4e789361f 26
reedas 1:f8f4e789361f 27 #include "cycfg_capsense.h"
reedas 1:f8f4e789361f 28
reedas 1:f8f4e789361f 29 #if (CY_CAPSENSE_CORE == __CORTEX_M)
reedas 1:f8f4e789361f 30
reedas 1:f8f4e789361f 31 #ifndef CSD_CMODPADS_PORT
reedas 1:f8f4e789361f 32 #define CSD_CMODPADS_PORT 0xFF
reedas 1:f8f4e789361f 33 #endif
reedas 1:f8f4e789361f 34 #ifndef CSD_CMODPADS_PIN
reedas 1:f8f4e789361f 35 #define CSD_CMODPADS_PIN 0xFF
reedas 1:f8f4e789361f 36 #endif
reedas 1:f8f4e789361f 37 #ifndef CSD_CSH_TANKPADS_PORT
reedas 1:f8f4e789361f 38 #define CSD_CSH_TANKPADS_PORT 0xFF
reedas 1:f8f4e789361f 39 #endif
reedas 1:f8f4e789361f 40 #ifndef CSD_CSH_TANKPADS_PIN
reedas 1:f8f4e789361f 41 #define CSD_CSH_TANKPADS_PIN 0xFF
reedas 1:f8f4e789361f 42 #endif
reedas 1:f8f4e789361f 43 #ifndef CSD_CSHIELDPADS_PORT
reedas 1:f8f4e789361f 44 #define CSD_CSHIELDPADS_PORT 0xFF
reedas 1:f8f4e789361f 45 #endif
reedas 1:f8f4e789361f 46 #ifndef CSD_CSHIELDPADS_PIN
reedas 1:f8f4e789361f 47 #define CSD_CSHIELDPADS_PIN 0xFF
reedas 1:f8f4e789361f 48 #endif
reedas 1:f8f4e789361f 49 #ifndef CSD_VREF_EXT_PORT
reedas 1:f8f4e789361f 50 #define CSD_VREF_EXT_PORT 0xFF
reedas 1:f8f4e789361f 51 #endif
reedas 1:f8f4e789361f 52 #ifndef CSD_VREF_EXT_PIN
reedas 1:f8f4e789361f 53 #define CSD_VREF_EXT_PIN 0xFF
reedas 1:f8f4e789361f 54 #endif
reedas 1:f8f4e789361f 55
reedas 1:f8f4e789361f 56 #define CY_CAPSENSE_WIDGET_COUNT (3u)
reedas 1:f8f4e789361f 57 #define CY_CAPSENSE_SENSOR_COUNT (7u)
reedas 1:f8f4e789361f 58 #define CY_CAPSENSE_ELTD_COUNT (9u)
reedas 1:f8f4e789361f 59 #define CY_CAPSENSE_PIN_COUNT (9u)
reedas 1:f8f4e789361f 60 #define CY_CAPSENSE_SHIELD_PIN_COUNT (0u)
reedas 1:f8f4e789361f 61 #define CY_CAPSENSE_POSITION_SIZE (1u)
reedas 1:f8f4e789361f 62 #define CY_CAPSENSE_DEBOUNCE_SIZE (3u)
reedas 1:f8f4e789361f 63 #define CY_CAPSENSE_NOISE_ENVELOPE_SIZE (0u)
reedas 1:f8f4e789361f 64 #define CY_CAPSENSE_RAW_HISTORY_SIZE (0u)
reedas 1:f8f4e789361f 65 #define CY_CAPSENSE_IIR_HISTORY_LOW_SIZE (0u)
reedas 1:f8f4e789361f 66 #define CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE (1u)
reedas 1:f8f4e789361f 67 #define CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE (1u)
reedas 1:f8f4e789361f 68 #define CY_CAPSENSE_DIPLEX_SIZE (0u)
reedas 1:f8f4e789361f 69 #define CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE (0u)
reedas 1:f8f4e789361f 70 #define CY_CAPSENSE_CSX_TOUCH_BUFFER_ENABLE (0u)
reedas 1:f8f4e789361f 71 #define CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE (0u)
reedas 1:f8f4e789361f 72 #define CY_CAPSENSE_BALLISTIC_WIDGET_COUNT (0u)
reedas 1:f8f4e789361f 73 #define CY_CAPSENSE_GESTURE_WIDGET_COUNT (0u)
reedas 1:f8f4e789361f 74
reedas 1:f8f4e789361f 75 static cy_stc_capsense_internal_context_t cy_capsense_internalContext;
reedas 1:f8f4e789361f 76 static cy_stc_active_scan_sns_t cy_capsense_activeScanSns;
reedas 1:f8f4e789361f 77
reedas 1:f8f4e789361f 78 #if (CY_CAPSENSE_DEBOUNCE_SIZE > 0)
reedas 1:f8f4e789361f 79 static uint8_t cy_capsense_debounce[CY_CAPSENSE_DEBOUNCE_SIZE] = {0};
reedas 1:f8f4e789361f 80 #endif
reedas 1:f8f4e789361f 81
reedas 1:f8f4e789361f 82 #if (CY_CAPSENSE_NOISE_ENVELOPE_SIZE > 0)
reedas 1:f8f4e789361f 83 static cy_stc_capsense_smartsense_csd_noise_envelope_t cy_capsense_noiseEnvelope[CY_CAPSENSE_NOISE_ENVELOPE_SIZE];
reedas 1:f8f4e789361f 84 #endif
reedas 1:f8f4e789361f 85
reedas 1:f8f4e789361f 86 #if (CY_CAPSENSE_RAW_HISTORY_SIZE > 0)
reedas 1:f8f4e789361f 87 static uint16_t cy_capsense_rawFilterHistory[CY_CAPSENSE_RAW_HISTORY_SIZE] = {0};
reedas 1:f8f4e789361f 88 #endif
reedas 1:f8f4e789361f 89
reedas 1:f8f4e789361f 90 #if (CY_CAPSENSE_IIR_HISTORY_LOW_SIZE > 0)
reedas 1:f8f4e789361f 91 static uint8_t cy_capsense_iirHistoryLow[CY_CAPSENSE_IIR_HISTORY_LOW_SIZE] = {0};
reedas 1:f8f4e789361f 92 #endif
reedas 1:f8f4e789361f 93
reedas 1:f8f4e789361f 94 #if (CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE > 0)
reedas 1:f8f4e789361f 95 static cy_stc_capsense_position_t cy_capsense_positionFilterHistory[CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE];
reedas 1:f8f4e789361f 96 #endif
reedas 1:f8f4e789361f 97
reedas 1:f8f4e789361f 98 #if (CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE > 0)
reedas 1:f8f4e789361f 99 static cy_stc_capsense_touch_t cy_capsense_touchFilterHistory[CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE] =
reedas 1:f8f4e789361f 100 {
reedas 1:f8f4e789361f 101 {
reedas 1:f8f4e789361f 102 .ptrPosition = &cy_capsense_positionFilterHistory[0u],
reedas 1:f8f4e789361f 103 .numPosition = 0u, },
reedas 1:f8f4e789361f 104 };
reedas 1:f8f4e789361f 105 #endif
reedas 1:f8f4e789361f 106
reedas 1:f8f4e789361f 107 #if (CY_CAPSENSE_DIPLEX_SIZE > 0)
reedas 1:f8f4e789361f 108 static const uint8_t cy_capsense_diplexTable[CY_CAPSENSE_DIPLEX_SIZE] =
reedas 1:f8f4e789361f 109 {
reedas 1:f8f4e789361f 110 };
reedas 1:f8f4e789361f 111 #endif
reedas 1:f8f4e789361f 112
reedas 1:f8f4e789361f 113 #if (CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE > 0)
reedas 1:f8f4e789361f 114 static uint16 cy_capsense_csdTouchBuffer[CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE] = {0};
reedas 1:f8f4e789361f 115 #endif
reedas 1:f8f4e789361f 116
reedas 1:f8f4e789361f 117 #if (CY_CAPSENSE_CSX_TOUCH_BUFFER_ENABLE > 0)
reedas 1:f8f4e789361f 118 static cy_stc_capsense_csx_touch_buffer_t cy_capsense_csxTouchBuffer;
reedas 1:f8f4e789361f 119 #endif
reedas 1:f8f4e789361f 120
reedas 1:f8f4e789361f 121 #if (CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE > 0)
reedas 1:f8f4e789361f 122 static cy_stc_capsense_csx_touch_history_t cy_capsense_csxTouchHistory[CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE] =
reedas 1:f8f4e789361f 123 {
reedas 1:f8f4e789361f 124 };
reedas 1:f8f4e789361f 125 #endif
reedas 1:f8f4e789361f 126
reedas 1:f8f4e789361f 127 #if (CY_CAPSENSE_BALLISTIC_WIDGET_COUNT > 0)
reedas 1:f8f4e789361f 128 static cy_stc_capsense_ballistic_context_t cy_capsense_ballisticContext[CY_CAPSENSE_BALLISTIC_WIDGET_COUNT];
reedas 1:f8f4e789361f 129 #endif
reedas 1:f8f4e789361f 130
reedas 1:f8f4e789361f 131 #if (CY_CAPSENSE_GESTURE_WIDGET_COUNT > 0)
reedas 1:f8f4e789361f 132 static cy_stc_capsense_gesture_context_t cy_capsense_gestureContext[CY_CAPSENSE_GESTURE_WIDGET_COUNT];
reedas 1:f8f4e789361f 133 #endif
reedas 1:f8f4e789361f 134
reedas 1:f8f4e789361f 135 static const cy_stc_capsense_common_config_t cy_capsense_commonConfig =
reedas 1:f8f4e789361f 136 {
reedas 1:f8f4e789361f 137 .cpuClkHz = CY_CAPSENSE_CPU_CLK,
reedas 1:f8f4e789361f 138 .periClkHz = CY_CAPSENSE_PERI_CLK,
reedas 1:f8f4e789361f 139 .vdda = CY_CAPSENSE_VDDA_MV,
reedas 1:f8f4e789361f 140 .numPin = CY_CAPSENSE_PIN_COUNT,
reedas 1:f8f4e789361f 141 .numSns = CY_CAPSENSE_SENSOR_COUNT,
reedas 1:f8f4e789361f 142 .numWd = CY_CAPSENSE_WIDGET_COUNT,
reedas 1:f8f4e789361f 143 .csdEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 144 .csxEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 145 .mfsEn = CY_CAPSENSE_DISABLE,
reedas 1:f8f4e789361f 146 .positionFilterEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 147 .periDividerType = CY_CAPSENSE_PERI_DIV_TYPE,
reedas 1:f8f4e789361f 148 .periDividerIndex = CY_CAPSENSE_PERI_DIV_INDEX,
reedas 1:f8f4e789361f 149 .analogWakeupDelay = 25u,
reedas 1:f8f4e789361f 150 .ssIrefSource = CY_CAPSENSE_IREF_SRSS,
reedas 1:f8f4e789361f 151 .ssVrefSource = CY_CAPSENSE_VREF_SRSS,
reedas 1:f8f4e789361f 152 .proxTouchCoeff = 300u,
reedas 1:f8f4e789361f 153 .swSensorAutoResetEn = CY_CAPSENSE_DISABLE,
reedas 1:f8f4e789361f 154 .portCmodPadNum = CSD_CMODPADS_PORT,
reedas 1:f8f4e789361f 155 .pinCmodPad = CSD_CMODPADS_PIN,
reedas 1:f8f4e789361f 156 .portCshPadNum = CSD_CSH_TANKPADS_PORT,
reedas 1:f8f4e789361f 157 .pinCshPad = CSD_CSH_TANKPADS_PIN,
reedas 1:f8f4e789361f 158 .portShieldPadNum = CSD_CSHIELDPADS_PORT,
reedas 1:f8f4e789361f 159 .pinShieldPad = CSD_CSHIELDPADS_PIN,
reedas 1:f8f4e789361f 160 .portVrefExtPadNum = CSD_VREF_EXT_PORT,
reedas 1:f8f4e789361f 161 .pinVrefExtPad = CSD_VREF_EXT_PIN,
reedas 1:f8f4e789361f 162 .portCmodNum = Cmod_PORT_NUM,
reedas 1:f8f4e789361f 163 .idacGainTable = {
reedas 1:f8f4e789361f 164 {0x01000000u, 37500u},
reedas 1:f8f4e789361f 165 {0x03000000u, 75000u},
reedas 1:f8f4e789361f 166 {0x01400000u, 300000u},
reedas 1:f8f4e789361f 167 {0x03400000u, 600000u},
reedas 1:f8f4e789361f 168 {0x01800000u, 2400000u},
reedas 1:f8f4e789361f 169 {0x03800000u, 4800000u},
reedas 1:f8f4e789361f 170 },
reedas 1:f8f4e789361f 171 .ptrCsdBase = CSD0,
reedas 1:f8f4e789361f 172 .ptrCsdContext = &cy_csd_0_context,
reedas 1:f8f4e789361f 173 .portCmod = Cmod_PORT,
reedas 1:f8f4e789361f 174 .portCsh = NULL,
reedas 1:f8f4e789361f 175 .portCintA = CintA_PORT,
reedas 1:f8f4e789361f 176 .portCintB = CintB_PORT,
reedas 1:f8f4e789361f 177 .pinCmod = Cmod_PIN,
reedas 1:f8f4e789361f 178 .portCshNum = 0u,
reedas 1:f8f4e789361f 179 .pinCsh = 0u,
reedas 1:f8f4e789361f 180 .pinCintA = CintA_PIN,
reedas 1:f8f4e789361f 181 .pinCintB = CintB_PIN,
reedas 1:f8f4e789361f 182 .csdShieldEn = CY_CAPSENSE_DISABLE,
reedas 1:f8f4e789361f 183 .csdInactiveSnsConnection = CY_CAPSENSE_SNS_CONNECTION_GROUND,
reedas 1:f8f4e789361f 184 .csdShieldDelay = CY_CAPSENSE_SH_DELAY_0NS,
reedas 1:f8f4e789361f 185 .csdVref = 0u,
reedas 1:f8f4e789361f 186 .csdRConst = 1000u,
reedas 1:f8f4e789361f 187 .csdCTankShieldEn = CY_CAPSENSE_DISABLE,
reedas 1:f8f4e789361f 188 .csdShieldNumPin = 0u,
reedas 1:f8f4e789361f 189 .csdShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 190 .csdInitSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 191 .csdChargeTransfer = CY_CAPSENSE_IDAC_SOURCING,
reedas 1:f8f4e789361f 192 .csdRawTarget = 85u,
reedas 1:f8f4e789361f 193 .csdAutotuneEn = CY_CAPSENSE_CSD_SS_DIS,
reedas 1:f8f4e789361f 194 .csdIdacAutocalEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 195 .csdIdacAutoGainEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 196 .csdCalibrationError = 10u,
reedas 1:f8f4e789361f 197 .csdIdacGainInitIndex = 4u,
reedas 1:f8f4e789361f 198 .csdIdacMin = 20u,
reedas 1:f8f4e789361f 199 .csdIdacCompEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 200 .csdFineInitTime = 10u,
reedas 1:f8f4e789361f 201 .csdIdacRowColAlignEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 202 .csdMfsDividerOffsetF1 = 1u,
reedas 1:f8f4e789361f 203 .csdMfsDividerOffsetF2 = 2u,
reedas 1:f8f4e789361f 204 .csxRawTarget = 40u,
reedas 1:f8f4e789361f 205 .csxIdacGainInitIndex = 2u,
reedas 1:f8f4e789361f 206 .csxIdacAutocalEn = CY_CAPSENSE_ENABLE,
reedas 1:f8f4e789361f 207 .csxCalibrationError = 20u,
reedas 1:f8f4e789361f 208 .csxFineInitTime = 10u,
reedas 1:f8f4e789361f 209 .csxInitSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 210 .csxScanSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 211 .csxInitShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 212 .csxScanShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
reedas 1:f8f4e789361f 213 .csxMfsDividerOffsetF1 = 1u,
reedas 1:f8f4e789361f 214 .csxMfsDividerOffsetF2 = 2u,
reedas 1:f8f4e789361f 215 };
reedas 1:f8f4e789361f 216
reedas 1:f8f4e789361f 217 static const cy_stc_capsense_fptr_config_t cy_capsense_fptrConfig =
reedas 1:f8f4e789361f 218 {
reedas 1:f8f4e789361f 219 #if (CY_CAPSENSE_CSD_EN == 0)
reedas 1:f8f4e789361f 220 .fptrCSDSetupWidget = NULL,
reedas 1:f8f4e789361f 221 .fptrCSDScan = NULL,
reedas 1:f8f4e789361f 222 .fptrDpProcessCsdWidgetRawCounts = NULL,
reedas 1:f8f4e789361f 223 .fptrDpProcessCsdWidgetStatus = NULL,
reedas 1:f8f4e789361f 224 .fptrCSDDisableMode = NULL,
reedas 1:f8f4e789361f 225 .fptrCSDInitialize = NULL,
reedas 1:f8f4e789361f 226 .fptrCSDScanISR = NULL,
reedas 1:f8f4e789361f 227 #else
reedas 1:f8f4e789361f 228 .fptrCSDSetupWidget = &Cy_CapSense_CSDSetupWidget,
reedas 1:f8f4e789361f 229 .fptrCSDScan = &Cy_CapSense_CSDScan,
reedas 1:f8f4e789361f 230 .fptrDpProcessCsdWidgetRawCounts = &Cy_CapSense_DpProcessCsdWidgetRawCounts,
reedas 1:f8f4e789361f 231 .fptrDpProcessCsdWidgetStatus = &Cy_CapSense_DpProcessCsdWidgetStatus,
reedas 1:f8f4e789361f 232 .fptrCSDDisableMode = &Cy_CapSense_CSDDisableMode,
reedas 1:f8f4e789361f 233 .fptrCSDInitialize = &Cy_CapSense_CSDInitialize,
reedas 1:f8f4e789361f 234 .fptrCSDScanISR = &Cy_CapSense_CSDScanISR,
reedas 1:f8f4e789361f 235 #endif
reedas 1:f8f4e789361f 236
reedas 1:f8f4e789361f 237 #if (CY_CAPSENSE_CSX_EN == 0)
reedas 1:f8f4e789361f 238 .fptrCSXSetupWidget = NULL,
reedas 1:f8f4e789361f 239 .fptrCSXScan = NULL,
reedas 1:f8f4e789361f 240 .fptrDpProcessCsxWidgetRawCounts = NULL,
reedas 1:f8f4e789361f 241 .fptrDpProcessCsxWidgetStatus = NULL,
reedas 1:f8f4e789361f 242 .fptrCSXInitialize = NULL,
reedas 1:f8f4e789361f 243 .fptrCSXDisableMode = NULL,
reedas 1:f8f4e789361f 244 .fptrCSXScanISR = NULL,
reedas 1:f8f4e789361f 245 #else
reedas 1:f8f4e789361f 246 .fptrCSXSetupWidget = &Cy_CapSense_CSXSetupWidget,
reedas 1:f8f4e789361f 247 .fptrCSXScan = &Cy_CapSense_CSXScan,
reedas 1:f8f4e789361f 248 .fptrDpProcessCsxWidgetRawCounts = &Cy_CapSense_DpProcessCsxWidgetRawCounts,
reedas 1:f8f4e789361f 249 .fptrDpProcessCsxWidgetStatus = &Cy_CapSense_DpProcessCsxWidgetStatus,
reedas 1:f8f4e789361f 250 .fptrCSXInitialize = &Cy_CapSense_CSXInitialize,
reedas 1:f8f4e789361f 251 .fptrCSXDisableMode = &Cy_CapSense_CSXDisableMode,
reedas 1:f8f4e789361f 252 .fptrCSXScanISR = &Cy_CapSense_CSXScanISR,
reedas 1:f8f4e789361f 253 #endif
reedas 1:f8f4e789361f 254
reedas 1:f8f4e789361f 255 #if (CY_CAPSENSE_ADAPTIVE_FILTER_EN == 0)
reedas 1:f8f4e789361f 256 .fptrAdaptiveFilterInitializeLib = NULL,
reedas 1:f8f4e789361f 257 .fptrAdaptiveFilterRunLib = NULL,
reedas 1:f8f4e789361f 258 #else
reedas 1:f8f4e789361f 259 .fptrAdaptiveFilterInitializeLib = &Cy_CapSense_AdaptiveFilterInitialize_Lib,
reedas 1:f8f4e789361f 260 .fptrAdaptiveFilterRunLib = &Cy_CapSense_AdaptiveFilterRun_Lib,
reedas 1:f8f4e789361f 261 #endif
reedas 1:f8f4e789361f 262
reedas 1:f8f4e789361f 263 #if (CY_CAPSENSE_BALLISTIC_MULTIPLIER_EN == 0)
reedas 1:f8f4e789361f 264 .fptrBallisticMultiplierLib = NULL,
reedas 1:f8f4e789361f 265 #else
reedas 1:f8f4e789361f 266 .fptrBallisticMultiplierLib = &Cy_CapSense_BallisticMultiplier_Lib,
reedas 1:f8f4e789361f 267 #endif
reedas 1:f8f4e789361f 268
reedas 1:f8f4e789361f 269 #if (CY_CAPSENSE_RAWCOUNT_FILTER_EN == 0)
reedas 1:f8f4e789361f 270 .fptrInitializeAllFilters = NULL,
reedas 1:f8f4e789361f 271 .fptrFtRunEnabledFiltersInternal = NULL,
reedas 1:f8f4e789361f 272 #else
reedas 1:f8f4e789361f 273 .fptrInitializeAllFilters = &Cy_CapSense_InitializeAllFilters,
reedas 1:f8f4e789361f 274 .fptrFtRunEnabledFiltersInternal = &Cy_CapSense_FtRunEnabledFiltersInternal,
reedas 1:f8f4e789361f 275 #endif
reedas 1:f8f4e789361f 276
reedas 1:f8f4e789361f 277 #if (CY_CAPSENSE_CSD_POSITION_FILTER_EN == 0)
reedas 1:f8f4e789361f 278 .fptrProcessPositionFilters = NULL,
reedas 1:f8f4e789361f 279 #else
reedas 1:f8f4e789361f 280 .fptrProcessPositionFilters = &Cy_CapSense_ProcessPositionFilters,
reedas 1:f8f4e789361f 281 #endif
reedas 1:f8f4e789361f 282
reedas 1:f8f4e789361f 283 #if ((CY_CAPSENSE_CSX_POSITION_FILTER_EN == 0) && (CY_CAPSENSE_CSD_POSITION_FILTER_EN == 0))
reedas 1:f8f4e789361f 284 .fptrRunPositionFilters = NULL,
reedas 1:f8f4e789361f 285 .fptrInitPositionFilters = NULL,
reedas 1:f8f4e789361f 286 #else
reedas 1:f8f4e789361f 287 .fptrRunPositionFilters = &Cy_CapSense_RunPositionFilters,
reedas 1:f8f4e789361f 288 .fptrInitPositionFilters = &Cy_CapSense_InitPositionFilters,
reedas 1:f8f4e789361f 289 #endif
reedas 1:f8f4e789361f 290
reedas 1:f8f4e789361f 291 #if ((CY_CAPSENSE_CSD_BUTTON_EN == 0) && \
reedas 1:f8f4e789361f 292 (CY_CAPSENSE_CSX_BUTTON_EN == 0) && (CY_CAPSENSE_CSX_MATRIX_EN == 0))
reedas 1:f8f4e789361f 293 .fptrDpProcessButton = NULL,
reedas 1:f8f4e789361f 294 #else
reedas 1:f8f4e789361f 295 .fptrDpProcessButton = &Cy_CapSense_DpProcessButton,
reedas 1:f8f4e789361f 296 #endif
reedas 1:f8f4e789361f 297
reedas 1:f8f4e789361f 298 #if (CY_CAPSENSE_CSD_SLIDER_EN == 0)
reedas 1:f8f4e789361f 299 .fptrDpProcessSlider = NULL,
reedas 1:f8f4e789361f 300 #else
reedas 1:f8f4e789361f 301 .fptrDpProcessSlider = &Cy_CapSense_DpProcessSlider,
reedas 1:f8f4e789361f 302 #endif
reedas 1:f8f4e789361f 303
reedas 1:f8f4e789361f 304 #if (CY_CAPSENSE_CSD_MATRIX_EN == 0)
reedas 1:f8f4e789361f 305 .fptrDpProcessCsdMatrix = NULL,
reedas 1:f8f4e789361f 306 #else
reedas 1:f8f4e789361f 307 .fptrDpProcessCsdMatrix = &Cy_CapSense_DpProcessCsdMatrix,
reedas 1:f8f4e789361f 308 #endif
reedas 1:f8f4e789361f 309
reedas 1:f8f4e789361f 310 #if (CY_CAPSENSE_CSD_TOUCHPAD_EN == 0)
reedas 1:f8f4e789361f 311 .fptrDpProcessCsdTouchpad = NULL,
reedas 1:f8f4e789361f 312 #else
reedas 1:f8f4e789361f 313 .fptrDpProcessCsdTouchpad = &Cy_CapSense_DpProcessCsdTouchpad,
reedas 1:f8f4e789361f 314 #endif
reedas 1:f8f4e789361f 315
reedas 1:f8f4e789361f 316 #if (CY_CAPSENSE_CSD_PROXIMITY_EN == 0)
reedas 1:f8f4e789361f 317 .fptrDpProcessProximity = NULL,
reedas 1:f8f4e789361f 318 #else
reedas 1:f8f4e789361f 319 .fptrDpProcessProximity = &Cy_CapSense_DpProcessProximity,
reedas 1:f8f4e789361f 320 #endif
reedas 1:f8f4e789361f 321
reedas 1:f8f4e789361f 322 #if (CY_CAPSENSE_CSX_TOUCHPAD_EN == 0)
reedas 1:f8f4e789361f 323 .fptrDpProcessCsxTouchpad = NULL,
reedas 1:f8f4e789361f 324 #else
reedas 1:f8f4e789361f 325 .fptrDpProcessCsxTouchpad = &Cy_CapSense_DpProcessCsxTouchpad,
reedas 1:f8f4e789361f 326 #endif
reedas 1:f8f4e789361f 327
reedas 1:f8f4e789361f 328 #if (CY_CAPSENSE_ADVANCED_CENTROID_5X5_EN == 0)
reedas 1:f8f4e789361f 329 .fptrDpAdvancedCentroidTouchpad = NULL,
reedas 1:f8f4e789361f 330 #else
reedas 1:f8f4e789361f 331 .fptrDpAdvancedCentroidTouchpad = &Cy_CapSense_DpAdvancedCentroidTouchpad,
reedas 1:f8f4e789361f 332 #endif
reedas 1:f8f4e789361f 333
reedas 1:f8f4e789361f 334 #if ((CY_CAPSENSE_CSD_CALIBRATION_EN == 0) && (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0))
reedas 1:f8f4e789361f 335 .fptrCSDCalibrateWidget = NULL,
reedas 1:f8f4e789361f 336 .fptrCalibrateAllCsdWidgets = NULL,
reedas 1:f8f4e789361f 337 #else
reedas 1:f8f4e789361f 338 .fptrCSDCalibrateWidget = &Cy_CapSense_CSDCalibrateWidget,
reedas 1:f8f4e789361f 339 .fptrCalibrateAllCsdWidgets = &Cy_CapSense_CalibrateAllCsdWidgets,
reedas 1:f8f4e789361f 340 #endif
reedas 1:f8f4e789361f 341
reedas 1:f8f4e789361f 342 #if (CY_CAPSENSE_CSX_CALIBRATION_EN == 0)
reedas 1:f8f4e789361f 343 .fptrCalibrateAllCsxWidgets = NULL,
reedas 1:f8f4e789361f 344 #else
reedas 1:f8f4e789361f 345 .fptrCalibrateAllCsxWidgets = &Cy_CapSense_CalibrateAllCsxWidgets,
reedas 1:f8f4e789361f 346 #endif
reedas 1:f8f4e789361f 347
reedas 1:f8f4e789361f 348 #if (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0)
reedas 1:f8f4e789361f 349 .fptrRunNoiseEnvelopeLib = NULL,
reedas 1:f8f4e789361f 350 .fptrDpUpdateThresholds = NULL,
reedas 1:f8f4e789361f 351 .fptrInitializeNoiseEnvelopeLib = NULL,
reedas 1:f8f4e789361f 352 #else
reedas 1:f8f4e789361f 353 .fptrRunNoiseEnvelopeLib = &Cy_CapSense_RunNoiseEnvelope_Lib,
reedas 1:f8f4e789361f 354 .fptrDpUpdateThresholds = &Cy_CapSense_DpUpdateThresholds,
reedas 1:f8f4e789361f 355 .fptrInitializeNoiseEnvelopeLib = &Cy_CapSense_InitializeNoiseEnvelope_Lib,
reedas 1:f8f4e789361f 356 #endif
reedas 1:f8f4e789361f 357
reedas 1:f8f4e789361f 358 #if ((CY_CAPSENSE_SMARTSENSE_HW_EN == 0) && (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0))
reedas 1:f8f4e789361f 359 .fptrSsAutoTune = NULL,
reedas 1:f8f4e789361f 360 #else
reedas 1:f8f4e789361f 361 .fptrSsAutoTune = &Cy_CapSense_SsAutoTune,
reedas 1:f8f4e789361f 362 #endif
reedas 1:f8f4e789361f 363 };
reedas 1:f8f4e789361f 364
reedas 1:f8f4e789361f 365 static const cy_stc_capsense_pin_config_t cy_capsense_pinConfig[CY_CAPSENSE_PIN_COUNT] =
reedas 1:f8f4e789361f 366 {
reedas 1:f8f4e789361f 367 { /* Button0_Rx0 */
reedas 1:f8f4e789361f 368 Button0_Rx0_PORT,
reedas 1:f8f4e789361f 369 Button0_Rx0_PIN,
reedas 1:f8f4e789361f 370 },
reedas 1:f8f4e789361f 371 { /* Button0_Tx */
reedas 1:f8f4e789361f 372 Button0_Tx_PORT,
reedas 1:f8f4e789361f 373 Button0_Tx_PIN,
reedas 1:f8f4e789361f 374 },
reedas 1:f8f4e789361f 375 { /* Button1_Rx0 */
reedas 1:f8f4e789361f 376 Button1_Rx0_PORT,
reedas 1:f8f4e789361f 377 Button1_Rx0_PIN,
reedas 1:f8f4e789361f 378 },
reedas 1:f8f4e789361f 379 { /* Button1_Tx */
reedas 1:f8f4e789361f 380 Button1_Tx_PORT,
reedas 1:f8f4e789361f 381 Button1_Tx_PIN,
reedas 1:f8f4e789361f 382 },
reedas 1:f8f4e789361f 383 { /* LinearSlider0_Sns0 */
reedas 1:f8f4e789361f 384 LinearSlider0_Sns0_PORT,
reedas 1:f8f4e789361f 385 LinearSlider0_Sns0_PIN,
reedas 1:f8f4e789361f 386 },
reedas 1:f8f4e789361f 387 { /* LinearSlider0_Sns1 */
reedas 1:f8f4e789361f 388 LinearSlider0_Sns1_PORT,
reedas 1:f8f4e789361f 389 LinearSlider0_Sns1_PIN,
reedas 1:f8f4e789361f 390 },
reedas 1:f8f4e789361f 391 { /* LinearSlider0_Sns2 */
reedas 1:f8f4e789361f 392 LinearSlider0_Sns2_PORT,
reedas 1:f8f4e789361f 393 LinearSlider0_Sns2_PIN,
reedas 1:f8f4e789361f 394 },
reedas 1:f8f4e789361f 395 { /* LinearSlider0_Sns3 */
reedas 1:f8f4e789361f 396 LinearSlider0_Sns3_PORT,
reedas 1:f8f4e789361f 397 LinearSlider0_Sns3_PIN,
reedas 1:f8f4e789361f 398 },
reedas 1:f8f4e789361f 399 { /* LinearSlider0_Sns4 */
reedas 1:f8f4e789361f 400 LinearSlider0_Sns4_PORT,
reedas 1:f8f4e789361f 401 LinearSlider0_Sns4_PIN,
reedas 1:f8f4e789361f 402 },
reedas 1:f8f4e789361f 403 };
reedas 1:f8f4e789361f 404
reedas 1:f8f4e789361f 405 #if (CY_CAPSENSE_SHIELD_PIN_COUNT > 0)
reedas 1:f8f4e789361f 406 static const cy_stc_capsense_pin_config_t cy_capsense_shieldPinConfig[CY_CAPSENSE_SHIELD_PIN_COUNT] =
reedas 1:f8f4e789361f 407 {
reedas 1:f8f4e789361f 408 };
reedas 1:f8f4e789361f 409 #endif
reedas 1:f8f4e789361f 410
reedas 1:f8f4e789361f 411 static const cy_stc_capsense_electrode_config_t cy_capsense_electrodeConfig[CY_CAPSENSE_ELTD_COUNT] =
reedas 1:f8f4e789361f 412 {
reedas 1:f8f4e789361f 413 { /* Button0_Rx0 */
reedas 1:f8f4e789361f 414 .ptrPin = &cy_capsense_pinConfig[0u],
reedas 1:f8f4e789361f 415 .type = CY_CAPSENSE_ELTD_TYPE_MUT_RX_E,
reedas 1:f8f4e789361f 416 .numPins = 1u,
reedas 1:f8f4e789361f 417 },
reedas 1:f8f4e789361f 418 { /* Button0_Tx */
reedas 1:f8f4e789361f 419 .ptrPin = &cy_capsense_pinConfig[1u],
reedas 1:f8f4e789361f 420 .type = CY_CAPSENSE_ELTD_TYPE_MUT_TX_E,
reedas 1:f8f4e789361f 421 .numPins = 1u,
reedas 1:f8f4e789361f 422 },
reedas 1:f8f4e789361f 423 { /* Button1_Rx0 */
reedas 1:f8f4e789361f 424 .ptrPin = &cy_capsense_pinConfig[2u],
reedas 1:f8f4e789361f 425 .type = CY_CAPSENSE_ELTD_TYPE_MUT_RX_E,
reedas 1:f8f4e789361f 426 .numPins = 1u,
reedas 1:f8f4e789361f 427 },
reedas 1:f8f4e789361f 428 { /* Button1_Tx */
reedas 1:f8f4e789361f 429 .ptrPin = &cy_capsense_pinConfig[3u],
reedas 1:f8f4e789361f 430 .type = CY_CAPSENSE_ELTD_TYPE_MUT_TX_E,
reedas 1:f8f4e789361f 431 .numPins = 1u,
reedas 1:f8f4e789361f 432 },
reedas 1:f8f4e789361f 433 { /* LinearSlider0_Sns0 */
reedas 1:f8f4e789361f 434 .ptrPin = &cy_capsense_pinConfig[4u],
reedas 1:f8f4e789361f 435 .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
reedas 1:f8f4e789361f 436 .numPins = 1u,
reedas 1:f8f4e789361f 437 },
reedas 1:f8f4e789361f 438 { /* LinearSlider0_Sns1 */
reedas 1:f8f4e789361f 439 .ptrPin = &cy_capsense_pinConfig[5u],
reedas 1:f8f4e789361f 440 .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
reedas 1:f8f4e789361f 441 .numPins = 1u,
reedas 1:f8f4e789361f 442 },
reedas 1:f8f4e789361f 443 { /* LinearSlider0_Sns2 */
reedas 1:f8f4e789361f 444 .ptrPin = &cy_capsense_pinConfig[6u],
reedas 1:f8f4e789361f 445 .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
reedas 1:f8f4e789361f 446 .numPins = 1u,
reedas 1:f8f4e789361f 447 },
reedas 1:f8f4e789361f 448 { /* LinearSlider0_Sns3 */
reedas 1:f8f4e789361f 449 .ptrPin = &cy_capsense_pinConfig[7u],
reedas 1:f8f4e789361f 450 .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
reedas 1:f8f4e789361f 451 .numPins = 1u,
reedas 1:f8f4e789361f 452 },
reedas 1:f8f4e789361f 453 { /* LinearSlider0_Sns4 */
reedas 1:f8f4e789361f 454 .ptrPin = &cy_capsense_pinConfig[8u],
reedas 1:f8f4e789361f 455 .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
reedas 1:f8f4e789361f 456 .numPins = 1u,
reedas 1:f8f4e789361f 457 },
reedas 1:f8f4e789361f 458 };
reedas 1:f8f4e789361f 459
reedas 1:f8f4e789361f 460 static const cy_stc_capsense_widget_config_t cy_capsense_widgetConfig[CY_CAPSENSE_WIDGET_COUNT] =
reedas 1:f8f4e789361f 461 {
reedas 1:f8f4e789361f 462 { /* Button0 */
reedas 1:f8f4e789361f 463 .ptrWdContext = &cy_capsense_tuner.widgetContext[0u],
reedas 1:f8f4e789361f 464 .ptrSnsContext = &cy_capsense_tuner.sensorContext[0u],
reedas 1:f8f4e789361f 465 .ptrEltdConfig = &cy_capsense_electrodeConfig[0u],
reedas 1:f8f4e789361f 466 .ptrNoiseEnvelope = NULL,
reedas 1:f8f4e789361f 467 .ptrRawFilterHistory = NULL,
reedas 1:f8f4e789361f 468 .ptrRawFilterHistoryLow = NULL,
reedas 1:f8f4e789361f 469 .iirCoeff = 128u,
reedas 1:f8f4e789361f 470 .ptrDebounceArr = &cy_capsense_debounce[0u],
reedas 1:f8f4e789361f 471 .ptrDiplexTable = NULL,
reedas 1:f8f4e789361f 472 .centroidConfig = 0u,
reedas 1:f8f4e789361f 473 .xResolution = 0u,
reedas 1:f8f4e789361f 474 .yResolution = 0u,
reedas 1:f8f4e789361f 475 .numSns = 1u,
reedas 1:f8f4e789361f 476 .numCols = 1u,
reedas 1:f8f4e789361f 477 .numRows = 1u,
reedas 1:f8f4e789361f 478 .ptrPosFilterHistory = NULL,
reedas 1:f8f4e789361f 479 .ptrCsxTouchHistory = NULL,
reedas 1:f8f4e789361f 480 .ptrCsxTouchBuffer = NULL,
reedas 1:f8f4e789361f 481 .ptrCsdTouchBuffer = NULL,
reedas 1:f8f4e789361f 482 .ptrGestureConfig = NULL,
reedas 1:f8f4e789361f 483 .ptrGestureContext = NULL,
reedas 1:f8f4e789361f 484 .ballisticConfig = {
reedas 1:f8f4e789361f 485 .accelCoeff = 9u,
reedas 1:f8f4e789361f 486 .speedCoeff = 2u,
reedas 1:f8f4e789361f 487 .divisorValue = 4u,
reedas 1:f8f4e789361f 488 .speedThresholdX = 3u,
reedas 1:f8f4e789361f 489 .speedThresholdY = 4u,
reedas 1:f8f4e789361f 490 },
reedas 1:f8f4e789361f 491 .ptrBallisticContext = NULL,
reedas 1:f8f4e789361f 492 .aiirConfig = {
reedas 1:f8f4e789361f 493 .maxK = 60u,
reedas 1:f8f4e789361f 494 .minK = 1u,
reedas 1:f8f4e789361f 495 .noMovTh = 3u,
reedas 1:f8f4e789361f 496 .littleMovTh = 7u,
reedas 1:f8f4e789361f 497 .largeMovTh = 12u,
reedas 1:f8f4e789361f 498 .divVal = 64u,
reedas 1:f8f4e789361f 499 },
reedas 1:f8f4e789361f 500 .advConfig = {
reedas 1:f8f4e789361f 501 .penultimateTh = 100u,
reedas 1:f8f4e789361f 502 .virtualSnsTh = 100u,
reedas 1:f8f4e789361f 503 .crossCouplingTh = 5u,
reedas 1:f8f4e789361f 504 },
reedas 1:f8f4e789361f 505 .posFilterConfig = 0u,
reedas 1:f8f4e789361f 506 .rawFilterConfig = 0u,
reedas 1:f8f4e789361f 507 .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSX_E,
reedas 1:f8f4e789361f 508 .wdType = CY_CAPSENSE_WD_BUTTON_E,
reedas 1:f8f4e789361f 509 },
reedas 1:f8f4e789361f 510 { /* Button1 */
reedas 1:f8f4e789361f 511 .ptrWdContext = &cy_capsense_tuner.widgetContext[1u],
reedas 1:f8f4e789361f 512 .ptrSnsContext = &cy_capsense_tuner.sensorContext[1u],
reedas 1:f8f4e789361f 513 .ptrEltdConfig = &cy_capsense_electrodeConfig[2u],
reedas 1:f8f4e789361f 514 .ptrNoiseEnvelope = NULL,
reedas 1:f8f4e789361f 515 .ptrRawFilterHistory = NULL,
reedas 1:f8f4e789361f 516 .ptrRawFilterHistoryLow = NULL,
reedas 1:f8f4e789361f 517 .iirCoeff = 128u,
reedas 1:f8f4e789361f 518 .ptrDebounceArr = &cy_capsense_debounce[1u],
reedas 1:f8f4e789361f 519 .ptrDiplexTable = NULL,
reedas 1:f8f4e789361f 520 .centroidConfig = 0u,
reedas 1:f8f4e789361f 521 .xResolution = 0u,
reedas 1:f8f4e789361f 522 .yResolution = 0u,
reedas 1:f8f4e789361f 523 .numSns = 1u,
reedas 1:f8f4e789361f 524 .numCols = 1u,
reedas 1:f8f4e789361f 525 .numRows = 1u,
reedas 1:f8f4e789361f 526 .ptrPosFilterHistory = NULL,
reedas 1:f8f4e789361f 527 .ptrCsxTouchHistory = NULL,
reedas 1:f8f4e789361f 528 .ptrCsxTouchBuffer = NULL,
reedas 1:f8f4e789361f 529 .ptrCsdTouchBuffer = NULL,
reedas 1:f8f4e789361f 530 .ptrGestureConfig = NULL,
reedas 1:f8f4e789361f 531 .ptrGestureContext = NULL,
reedas 1:f8f4e789361f 532 .ballisticConfig = {
reedas 1:f8f4e789361f 533 .accelCoeff = 9u,
reedas 1:f8f4e789361f 534 .speedCoeff = 2u,
reedas 1:f8f4e789361f 535 .divisorValue = 4u,
reedas 1:f8f4e789361f 536 .speedThresholdX = 3u,
reedas 1:f8f4e789361f 537 .speedThresholdY = 4u,
reedas 1:f8f4e789361f 538 },
reedas 1:f8f4e789361f 539 .ptrBallisticContext = NULL,
reedas 1:f8f4e789361f 540 .aiirConfig = {
reedas 1:f8f4e789361f 541 .maxK = 60u,
reedas 1:f8f4e789361f 542 .minK = 1u,
reedas 1:f8f4e789361f 543 .noMovTh = 3u,
reedas 1:f8f4e789361f 544 .littleMovTh = 7u,
reedas 1:f8f4e789361f 545 .largeMovTh = 12u,
reedas 1:f8f4e789361f 546 .divVal = 64u,
reedas 1:f8f4e789361f 547 },
reedas 1:f8f4e789361f 548 .advConfig = {
reedas 1:f8f4e789361f 549 .penultimateTh = 100u,
reedas 1:f8f4e789361f 550 .virtualSnsTh = 100u,
reedas 1:f8f4e789361f 551 .crossCouplingTh = 5u,
reedas 1:f8f4e789361f 552 },
reedas 1:f8f4e789361f 553 .posFilterConfig = 0u,
reedas 1:f8f4e789361f 554 .rawFilterConfig = 0u,
reedas 1:f8f4e789361f 555 .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSX_E,
reedas 1:f8f4e789361f 556 .wdType = CY_CAPSENSE_WD_BUTTON_E,
reedas 1:f8f4e789361f 557 },
reedas 1:f8f4e789361f 558 { /* LinearSlider0 */
reedas 1:f8f4e789361f 559 .ptrWdContext = &cy_capsense_tuner.widgetContext[2u],
reedas 1:f8f4e789361f 560 .ptrSnsContext = &cy_capsense_tuner.sensorContext[2u],
reedas 1:f8f4e789361f 561 .ptrEltdConfig = &cy_capsense_electrodeConfig[4u],
reedas 1:f8f4e789361f 562 .ptrNoiseEnvelope = NULL,
reedas 1:f8f4e789361f 563 .ptrRawFilterHistory = NULL,
reedas 1:f8f4e789361f 564 .ptrRawFilterHistoryLow = NULL,
reedas 1:f8f4e789361f 565 .iirCoeff = 128u,
reedas 1:f8f4e789361f 566 .ptrDebounceArr = &cy_capsense_debounce[2u],
reedas 1:f8f4e789361f 567 .ptrDiplexTable = NULL,
reedas 1:f8f4e789361f 568 .centroidConfig = 1u,
reedas 1:f8f4e789361f 569 .xResolution = 100u,
reedas 1:f8f4e789361f 570 .yResolution = 0u,
reedas 1:f8f4e789361f 571 .numSns = 5u,
reedas 1:f8f4e789361f 572 .numCols = 5u,
reedas 1:f8f4e789361f 573 .numRows = 0u,
reedas 1:f8f4e789361f 574 .ptrPosFilterHistory = &cy_capsense_touchFilterHistory[0u],
reedas 1:f8f4e789361f 575 .ptrCsxTouchHistory = NULL,
reedas 1:f8f4e789361f 576 .ptrCsxTouchBuffer = NULL,
reedas 1:f8f4e789361f 577 .ptrCsdTouchBuffer = NULL,
reedas 1:f8f4e789361f 578 .ptrGestureConfig = NULL,
reedas 1:f8f4e789361f 579 .ptrGestureContext = NULL,
reedas 1:f8f4e789361f 580 .ballisticConfig = {
reedas 1:f8f4e789361f 581 .accelCoeff = 9u,
reedas 1:f8f4e789361f 582 .speedCoeff = 2u,
reedas 1:f8f4e789361f 583 .divisorValue = 4u,
reedas 1:f8f4e789361f 584 .speedThresholdX = 3u,
reedas 1:f8f4e789361f 585 .speedThresholdY = 4u,
reedas 1:f8f4e789361f 586 },
reedas 1:f8f4e789361f 587 .ptrBallisticContext = NULL,
reedas 1:f8f4e789361f 588 .aiirConfig = {
reedas 1:f8f4e789361f 589 .maxK = 60u,
reedas 1:f8f4e789361f 590 .minK = 1u,
reedas 1:f8f4e789361f 591 .noMovTh = 3u,
reedas 1:f8f4e789361f 592 .littleMovTh = 7u,
reedas 1:f8f4e789361f 593 .largeMovTh = 12u,
reedas 1:f8f4e789361f 594 .divVal = 64u,
reedas 1:f8f4e789361f 595 },
reedas 1:f8f4e789361f 596 .advConfig = {
reedas 1:f8f4e789361f 597 .penultimateTh = 100u,
reedas 1:f8f4e789361f 598 .virtualSnsTh = 100u,
reedas 1:f8f4e789361f 599 .crossCouplingTh = 5u,
reedas 1:f8f4e789361f 600 },
reedas 1:f8f4e789361f 601 .posFilterConfig = 272u,
reedas 1:f8f4e789361f 602 .rawFilterConfig = 0u,
reedas 1:f8f4e789361f 603 .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSD_E,
reedas 1:f8f4e789361f 604 .wdType = CY_CAPSENSE_WD_LINEAR_SLIDER_E,
reedas 1:f8f4e789361f 605 },
reedas 1:f8f4e789361f 606 };
reedas 1:f8f4e789361f 607
reedas 1:f8f4e789361f 608 cy_stc_capsense_tuner_t cy_capsense_tuner =
reedas 1:f8f4e789361f 609 {
reedas 1:f8f4e789361f 610 .commonContext = {
reedas 1:f8f4e789361f 611 .configId = 0xca04,
reedas 1:f8f4e789361f 612 .tunerCmd = 0u,
reedas 1:f8f4e789361f 613 .scanCounter = 0u,
reedas 1:f8f4e789361f 614 .tunerSt = 0u,
reedas 1:f8f4e789361f 615 .initDone = 0u,
reedas 1:f8f4e789361f 616 .ptrSSCallback = NULL,
reedas 1:f8f4e789361f 617 .ptrEOSCallback = NULL,
reedas 1:f8f4e789361f 618 .ptrTunerSendCallback = NULL,
reedas 1:f8f4e789361f 619 .ptrTunerReceiveCallback = NULL,
reedas 1:f8f4e789361f 620 .status = 0u,
reedas 1:f8f4e789361f 621 .timestampInterval = 1u,
reedas 1:f8f4e789361f 622 .timestamp = 0u,
reedas 1:f8f4e789361f 623 .modCsdClk = 4u,
reedas 1:f8f4e789361f 624 .modCsxClk = 4u,
reedas 1:f8f4e789361f 625 .tunerCnt = 0u,
reedas 1:f8f4e789361f 626 },
reedas 1:f8f4e789361f 627 .widgetContext = {
reedas 1:f8f4e789361f 628 {
reedas 1:f8f4e789361f 629 .fingerCap = 300u,
reedas 1:f8f4e789361f 630 .sigPFC = 0u,
reedas 1:f8f4e789361f 631 .resolution = 100u,
reedas 1:f8f4e789361f 632 .maxRawCount = 0u,
reedas 1:f8f4e789361f 633 .fingerTh = 90u,
reedas 1:f8f4e789361f 634 .proxTh = 200u,
reedas 1:f8f4e789361f 635 .lowBslnRst = 30u,
reedas 1:f8f4e789361f 636 .snsClk = 80u,
reedas 1:f8f4e789361f 637 .rowSnsClk = 2u,
reedas 1:f8f4e789361f 638 .gestureDetected = 0u,
reedas 1:f8f4e789361f 639 .gestureDirection = 0u,
reedas 1:f8f4e789361f 640 .xDelta = 0u,
reedas 1:f8f4e789361f 641 .yDelta = 0u,
reedas 1:f8f4e789361f 642 .noiseTh = 40u,
reedas 1:f8f4e789361f 643 .nNoiseTh = 40u,
reedas 1:f8f4e789361f 644 .hysteresis = 20u,
reedas 1:f8f4e789361f 645 .onDebounce = 3u,
reedas 1:f8f4e789361f 646 .snsClkSource = CY_CAPSENSE_CLK_SOURCE_AUTO_MASK,
reedas 1:f8f4e789361f 647 .idacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 648 .idacGainIndex = 2u,
reedas 1:f8f4e789361f 649 .rowIdacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 650 .bslnCoeff = 1u,
reedas 1:f8f4e789361f 651 .status = 0u,
reedas 1:f8f4e789361f 652 .wdTouch = {
reedas 1:f8f4e789361f 653 .ptrPosition = NULL,
reedas 1:f8f4e789361f 654 .numPosition = 0,
reedas 1:f8f4e789361f 655 },
reedas 1:f8f4e789361f 656 },
reedas 1:f8f4e789361f 657 {
reedas 1:f8f4e789361f 658 .fingerCap = 160u,
reedas 1:f8f4e789361f 659 .sigPFC = 0u,
reedas 1:f8f4e789361f 660 .resolution = 100u,
reedas 1:f8f4e789361f 661 .maxRawCount = 0u,
reedas 1:f8f4e789361f 662 .fingerTh = 90u,
reedas 1:f8f4e789361f 663 .proxTh = 200u,
reedas 1:f8f4e789361f 664 .lowBslnRst = 30u,
reedas 1:f8f4e789361f 665 .snsClk = 80u,
reedas 1:f8f4e789361f 666 .rowSnsClk = 16u,
reedas 1:f8f4e789361f 667 .gestureDetected = 0u,
reedas 1:f8f4e789361f 668 .gestureDirection = 0u,
reedas 1:f8f4e789361f 669 .xDelta = 0u,
reedas 1:f8f4e789361f 670 .yDelta = 0u,
reedas 1:f8f4e789361f 671 .noiseTh = 40u,
reedas 1:f8f4e789361f 672 .nNoiseTh = 40u,
reedas 1:f8f4e789361f 673 .hysteresis = 20u,
reedas 1:f8f4e789361f 674 .onDebounce = 3u,
reedas 1:f8f4e789361f 675 .snsClkSource = CY_CAPSENSE_CLK_SOURCE_AUTO_MASK,
reedas 1:f8f4e789361f 676 .idacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 677 .idacGainIndex = 2u,
reedas 1:f8f4e789361f 678 .rowIdacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 679 .bslnCoeff = 1u,
reedas 1:f8f4e789361f 680 .status = 0u,
reedas 1:f8f4e789361f 681 .wdTouch = {
reedas 1:f8f4e789361f 682 .ptrPosition = NULL,
reedas 1:f8f4e789361f 683 .numPosition = 0,
reedas 1:f8f4e789361f 684 },
reedas 1:f8f4e789361f 685 },
reedas 1:f8f4e789361f 686 {
reedas 1:f8f4e789361f 687 .fingerCap = 100u,
reedas 1:f8f4e789361f 688 .sigPFC = 0u,
reedas 1:f8f4e789361f 689 .resolution = 13u,
reedas 1:f8f4e789361f 690 .maxRawCount = 0u,
reedas 1:f8f4e789361f 691 .fingerTh = 100u,
reedas 1:f8f4e789361f 692 .proxTh = 200u,
reedas 1:f8f4e789361f 693 .lowBslnRst = 30u,
reedas 1:f8f4e789361f 694 .snsClk = 34u,
reedas 1:f8f4e789361f 695 .rowSnsClk = 2u,
reedas 1:f8f4e789361f 696 .gestureDetected = 0u,
reedas 1:f8f4e789361f 697 .gestureDirection = 0u,
reedas 1:f8f4e789361f 698 .xDelta = 0u,
reedas 1:f8f4e789361f 699 .yDelta = 0u,
reedas 1:f8f4e789361f 700 .noiseTh = 40u,
reedas 1:f8f4e789361f 701 .nNoiseTh = 40u,
reedas 1:f8f4e789361f 702 .hysteresis = 10u,
reedas 1:f8f4e789361f 703 .onDebounce = 3u,
reedas 1:f8f4e789361f 704 .snsClkSource = CY_CAPSENSE_CLK_SOURCE_DIRECT,
reedas 1:f8f4e789361f 705 .idacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 706 .idacGainIndex = 4u,
reedas 1:f8f4e789361f 707 .rowIdacMod = { 32u, 32u, 32u, },
reedas 1:f8f4e789361f 708 .bslnCoeff = 1u,
reedas 1:f8f4e789361f 709 .status = 0u,
reedas 1:f8f4e789361f 710 .wdTouch = {
reedas 1:f8f4e789361f 711 .ptrPosition = &cy_capsense_tuner.position[0u],
reedas 1:f8f4e789361f 712 .numPosition = 1,
reedas 1:f8f4e789361f 713 },
reedas 1:f8f4e789361f 714 },
reedas 1:f8f4e789361f 715 },
reedas 1:f8f4e789361f 716 .sensorContext = {
reedas 1:f8f4e789361f 717 {
reedas 1:f8f4e789361f 718 .raw = 0u,
reedas 1:f8f4e789361f 719 .bsln = 0u,
reedas 1:f8f4e789361f 720 .diff = 0u,
reedas 1:f8f4e789361f 721 .status = 0u,
reedas 1:f8f4e789361f 722 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 723 .idacComp = 32u,
reedas 1:f8f4e789361f 724 .bslnExt = 0u,
reedas 1:f8f4e789361f 725 },
reedas 1:f8f4e789361f 726 {
reedas 1:f8f4e789361f 727 .raw = 0u,
reedas 1:f8f4e789361f 728 .bsln = 0u,
reedas 1:f8f4e789361f 729 .diff = 0u,
reedas 1:f8f4e789361f 730 .status = 0u,
reedas 1:f8f4e789361f 731 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 732 .idacComp = 32u,
reedas 1:f8f4e789361f 733 .bslnExt = 0u,
reedas 1:f8f4e789361f 734 },
reedas 1:f8f4e789361f 735 {
reedas 1:f8f4e789361f 736 .raw = 0u,
reedas 1:f8f4e789361f 737 .bsln = 0u,
reedas 1:f8f4e789361f 738 .diff = 0u,
reedas 1:f8f4e789361f 739 .status = 0u,
reedas 1:f8f4e789361f 740 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 741 .idacComp = 32u,
reedas 1:f8f4e789361f 742 .bslnExt = 0u,
reedas 1:f8f4e789361f 743 },
reedas 1:f8f4e789361f 744 {
reedas 1:f8f4e789361f 745 .raw = 0u,
reedas 1:f8f4e789361f 746 .bsln = 0u,
reedas 1:f8f4e789361f 747 .diff = 0u,
reedas 1:f8f4e789361f 748 .status = 0u,
reedas 1:f8f4e789361f 749 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 750 .idacComp = 32u,
reedas 1:f8f4e789361f 751 .bslnExt = 0u,
reedas 1:f8f4e789361f 752 },
reedas 1:f8f4e789361f 753 {
reedas 1:f8f4e789361f 754 .raw = 0u,
reedas 1:f8f4e789361f 755 .bsln = 0u,
reedas 1:f8f4e789361f 756 .diff = 0u,
reedas 1:f8f4e789361f 757 .status = 0u,
reedas 1:f8f4e789361f 758 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 759 .idacComp = 32u,
reedas 1:f8f4e789361f 760 .bslnExt = 0u,
reedas 1:f8f4e789361f 761 },
reedas 1:f8f4e789361f 762 {
reedas 1:f8f4e789361f 763 .raw = 0u,
reedas 1:f8f4e789361f 764 .bsln = 0u,
reedas 1:f8f4e789361f 765 .diff = 0u,
reedas 1:f8f4e789361f 766 .status = 0u,
reedas 1:f8f4e789361f 767 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 768 .idacComp = 32u,
reedas 1:f8f4e789361f 769 .bslnExt = 0u,
reedas 1:f8f4e789361f 770 },
reedas 1:f8f4e789361f 771 {
reedas 1:f8f4e789361f 772 .raw = 0u,
reedas 1:f8f4e789361f 773 .bsln = 0u,
reedas 1:f8f4e789361f 774 .diff = 0u,
reedas 1:f8f4e789361f 775 .status = 0u,
reedas 1:f8f4e789361f 776 .negBslnRstCnt = 0u,
reedas 1:f8f4e789361f 777 .idacComp = 32u,
reedas 1:f8f4e789361f 778 .bslnExt = 0u,
reedas 1:f8f4e789361f 779 },
reedas 1:f8f4e789361f 780 },
reedas 1:f8f4e789361f 781 .position = {
reedas 1:f8f4e789361f 782 {
reedas 1:f8f4e789361f 783 .x = 0u,
reedas 1:f8f4e789361f 784 .y = 0u,
reedas 1:f8f4e789361f 785 .z = 0u,
reedas 1:f8f4e789361f 786 .id = 0u,
reedas 1:f8f4e789361f 787 },
reedas 1:f8f4e789361f 788 },
reedas 1:f8f4e789361f 789 };
reedas 1:f8f4e789361f 790
reedas 1:f8f4e789361f 791 cy_stc_capsense_context_t cy_capsense_context =
reedas 1:f8f4e789361f 792 {
reedas 1:f8f4e789361f 793 .ptrCommonConfig = &cy_capsense_commonConfig,
reedas 1:f8f4e789361f 794 .ptrCommonContext = &cy_capsense_tuner.commonContext,
reedas 1:f8f4e789361f 795 .ptrInternalContext = &cy_capsense_internalContext,
reedas 1:f8f4e789361f 796 .ptrWdConfig = &cy_capsense_widgetConfig[0u],
reedas 1:f8f4e789361f 797 .ptrWdContext = &cy_capsense_tuner.widgetContext[0u],
reedas 1:f8f4e789361f 798 .ptrPinConfig = &cy_capsense_pinConfig[0u],
reedas 1:f8f4e789361f 799 .ptrShieldPinConfig = NULL,
reedas 1:f8f4e789361f 800 .ptrActiveScanSns = &cy_capsense_activeScanSns,
reedas 1:f8f4e789361f 801 .ptrFptrConfig = (const void *) &cy_capsense_fptrConfig,
reedas 1:f8f4e789361f 802 };
reedas 1:f8f4e789361f 803
reedas 1:f8f4e789361f 804 #endif /* CY_CAPSENSE_CORE == __CORTEX_M */
reedas 1:f8f4e789361f 805
reedas 1:f8f4e789361f 806 /* [] END OF FILE */