Andrew Reed / Mbed OS CITY1082-capsense-tft
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cycfg_capsense.c Source File

cycfg_capsense.c

00001 /*******************************************************************************
00002 * File Name: cycfg_capsense.c
00003 * Version: 2.0
00004 *
00005 * Description:
00006 * CapSense middleware configuration
00007 * This file should not be modified. It was automatically generated by
00008 * CapSense Configurator 2.0.0 build 566
00009 *
00010 ********************************************************************************
00011 * Copyright 2019 Cypress Semiconductor Corporation
00012 * SPDX-License-Identifier: Apache-2.0
00013 *
00014 * Licensed under the Apache License, Version 2.0 (the "License");
00015 * you may not use this file except in compliance with the License.
00016 * You may obtain a copy of the License at
00017 *
00018 *     http://www.apache.org/licenses/LICENSE-2.0
00019 *
00020 * Unless required by applicable law or agreed to in writing, software
00021 * distributed under the License is distributed on an "AS IS" BASIS,
00022 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00023 * See the License for the specific language governing permissions and
00024 * limitations under the License.
00025 *******************************************************************************/
00026 
00027 #include "cycfg_capsense.h"
00028 
00029 #if (CY_CAPSENSE_CORE == __CORTEX_M)
00030 
00031 #ifndef CSD_CMODPADS_PORT
00032 #define CSD_CMODPADS_PORT 0xFF
00033 #endif
00034 #ifndef CSD_CMODPADS_PIN
00035 #define CSD_CMODPADS_PIN 0xFF
00036 #endif
00037 #ifndef CSD_CSH_TANKPADS_PORT
00038 #define CSD_CSH_TANKPADS_PORT 0xFF
00039 #endif
00040 #ifndef CSD_CSH_TANKPADS_PIN
00041 #define CSD_CSH_TANKPADS_PIN 0xFF
00042 #endif
00043 #ifndef CSD_CSHIELDPADS_PORT
00044 #define CSD_CSHIELDPADS_PORT 0xFF
00045 #endif
00046 #ifndef CSD_CSHIELDPADS_PIN
00047 #define CSD_CSHIELDPADS_PIN 0xFF
00048 #endif
00049 #ifndef CSD_VREF_EXT_PORT
00050 #define CSD_VREF_EXT_PORT 0xFF
00051 #endif
00052 #ifndef CSD_VREF_EXT_PIN
00053 #define CSD_VREF_EXT_PIN 0xFF
00054 #endif
00055 
00056 #define CY_CAPSENSE_WIDGET_COUNT                               (3u)
00057 #define CY_CAPSENSE_SENSOR_COUNT                               (7u)
00058 #define CY_CAPSENSE_ELTD_COUNT                                 (9u)
00059 #define CY_CAPSENSE_PIN_COUNT                                  (9u)
00060 #define CY_CAPSENSE_SHIELD_PIN_COUNT                           (0u)
00061 #define CY_CAPSENSE_POSITION_SIZE                              (1u)
00062 #define CY_CAPSENSE_DEBOUNCE_SIZE                              (3u)
00063 #define CY_CAPSENSE_NOISE_ENVELOPE_SIZE                        (0u)
00064 #define CY_CAPSENSE_RAW_HISTORY_SIZE                           (0u)
00065 #define CY_CAPSENSE_IIR_HISTORY_LOW_SIZE                       (0u)
00066 #define CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE               (1u)
00067 #define CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE                  (1u)
00068 #define CY_CAPSENSE_DIPLEX_SIZE                                (0u)
00069 #define CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE              (0u)
00070 #define CY_CAPSENSE_CSX_TOUCH_BUFFER_ENABLE                    (0u)
00071 #define CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE                     (0u)
00072 #define CY_CAPSENSE_BALLISTIC_WIDGET_COUNT                     (0u)
00073 #define CY_CAPSENSE_GESTURE_WIDGET_COUNT                       (0u)
00074 
00075 static cy_stc_capsense_internal_context_t cy_capsense_internalContext;
00076 static cy_stc_active_scan_sns_t cy_capsense_activeScanSns;
00077 
00078 #if (CY_CAPSENSE_DEBOUNCE_SIZE > 0)
00079     static uint8_t cy_capsense_debounce[CY_CAPSENSE_DEBOUNCE_SIZE] = {0};
00080 #endif
00081 
00082 #if (CY_CAPSENSE_NOISE_ENVELOPE_SIZE > 0)
00083     static cy_stc_capsense_smartsense_csd_noise_envelope_t cy_capsense_noiseEnvelope[CY_CAPSENSE_NOISE_ENVELOPE_SIZE];
00084 #endif
00085 
00086 #if (CY_CAPSENSE_RAW_HISTORY_SIZE > 0)
00087     static uint16_t cy_capsense_rawFilterHistory[CY_CAPSENSE_RAW_HISTORY_SIZE] = {0};
00088 #endif
00089 
00090 #if (CY_CAPSENSE_IIR_HISTORY_LOW_SIZE > 0)
00091     static uint8_t cy_capsense_iirHistoryLow[CY_CAPSENSE_IIR_HISTORY_LOW_SIZE] = {0};
00092 #endif
00093 
00094 #if (CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE > 0)
00095     static cy_stc_capsense_position_t cy_capsense_positionFilterHistory[CY_CAPSENSE_POSITION_FILTER_HISTORY_SIZE];
00096 #endif
00097 
00098 #if (CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE > 0)
00099     static cy_stc_capsense_touch_t cy_capsense_touchFilterHistory[CY_CAPSENSE_TOUCH_FILTER_HISTORY_SIZE] =
00100     {
00101         {
00102             .ptrPosition = &cy_capsense_positionFilterHistory[0u],
00103 .numPosition = 0u,        },
00104     };
00105 #endif
00106 
00107 #if (CY_CAPSENSE_DIPLEX_SIZE > 0)
00108     static const uint8_t cy_capsense_diplexTable[CY_CAPSENSE_DIPLEX_SIZE] =
00109     {
00110     };
00111 #endif
00112 
00113 #if (CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE > 0)
00114     static uint16 cy_capsense_csdTouchBuffer[CY_CAPSENSE_CSD_TOUCHPAD_MAX_SENSORS_SIZE] = {0};
00115 #endif
00116 
00117 #if (CY_CAPSENSE_CSX_TOUCH_BUFFER_ENABLE > 0)
00118     static cy_stc_capsense_csx_touch_buffer_t cy_capsense_csxTouchBuffer;
00119 #endif
00120 
00121 #if (CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE > 0)
00122     static cy_stc_capsense_csx_touch_history_t cy_capsense_csxTouchHistory[CY_CAPSENSE_CSX_TOUCH_HISTORY_SIZE] =
00123     {
00124     };
00125 #endif
00126 
00127 #if (CY_CAPSENSE_BALLISTIC_WIDGET_COUNT > 0)
00128     static cy_stc_capsense_ballistic_context_t cy_capsense_ballisticContext[CY_CAPSENSE_BALLISTIC_WIDGET_COUNT];
00129 #endif
00130 
00131 #if (CY_CAPSENSE_GESTURE_WIDGET_COUNT > 0)
00132     static cy_stc_capsense_gesture_context_t cy_capsense_gestureContext[CY_CAPSENSE_GESTURE_WIDGET_COUNT];
00133 #endif
00134 
00135 static const cy_stc_capsense_common_config_t cy_capsense_commonConfig =
00136 {
00137     .cpuClkHz = CY_CAPSENSE_CPU_CLK,
00138     .periClkHz = CY_CAPSENSE_PERI_CLK,
00139     .vdda = CY_CAPSENSE_VDDA_MV,
00140     .numPin = CY_CAPSENSE_PIN_COUNT,
00141     .numSns = CY_CAPSENSE_SENSOR_COUNT,
00142     .numWd = CY_CAPSENSE_WIDGET_COUNT,
00143     .csdEn = CY_CAPSENSE_ENABLE,
00144     .csxEn = CY_CAPSENSE_ENABLE,
00145     .mfsEn = CY_CAPSENSE_DISABLE,
00146     .positionFilterEn = CY_CAPSENSE_ENABLE,
00147     .periDividerType = CY_CAPSENSE_PERI_DIV_TYPE,
00148     .periDividerIndex = CY_CAPSENSE_PERI_DIV_INDEX,
00149     .analogWakeupDelay = 25u,
00150     .ssIrefSource = CY_CAPSENSE_IREF_SRSS,
00151     .ssVrefSource = CY_CAPSENSE_VREF_SRSS,
00152     .proxTouchCoeff = 300u,
00153     .swSensorAutoResetEn = CY_CAPSENSE_DISABLE,
00154     .portCmodPadNum = CSD_CMODPADS_PORT,
00155     .pinCmodPad = CSD_CMODPADS_PIN,
00156     .portCshPadNum = CSD_CSH_TANKPADS_PORT,
00157     .pinCshPad = CSD_CSH_TANKPADS_PIN,
00158     .portShieldPadNum = CSD_CSHIELDPADS_PORT,
00159     .pinShieldPad = CSD_CSHIELDPADS_PIN,
00160     .portVrefExtPadNum = CSD_VREF_EXT_PORT,
00161     .pinVrefExtPad = CSD_VREF_EXT_PIN,
00162     .portCmodNum = Cmod_PORT_NUM,
00163     .idacGainTable = {
00164         {0x01000000u,   37500u},
00165         {0x03000000u,   75000u},
00166         {0x01400000u,  300000u},
00167         {0x03400000u,  600000u},
00168         {0x01800000u, 2400000u},
00169         {0x03800000u, 4800000u},
00170     },
00171     .ptrCsdBase = CSD0,
00172     .ptrCsdContext = &cy_csd_0_context,
00173     .portCmod = Cmod_PORT,
00174     .portCsh = NULL,
00175     .portCintA = CintA_PORT,
00176     .portCintB = CintB_PORT,
00177     .pinCmod = Cmod_PIN,
00178     .portCshNum = 0u,
00179     .pinCsh = 0u,
00180     .pinCintA = CintA_PIN,
00181     .pinCintB = CintB_PIN,
00182     .csdShieldEn = CY_CAPSENSE_DISABLE,
00183     .csdInactiveSnsConnection = CY_CAPSENSE_SNS_CONNECTION_GROUND,
00184     .csdShieldDelay = CY_CAPSENSE_SH_DELAY_0NS,
00185     .csdVref = 0u,
00186     .csdRConst = 1000u,
00187     .csdCTankShieldEn = CY_CAPSENSE_DISABLE,
00188     .csdShieldNumPin = 0u,
00189     .csdShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
00190     .csdInitSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
00191     .csdChargeTransfer = CY_CAPSENSE_IDAC_SOURCING,
00192     .csdRawTarget = 85u,
00193     .csdAutotuneEn = CY_CAPSENSE_CSD_SS_DIS,
00194     .csdIdacAutocalEn = CY_CAPSENSE_ENABLE,
00195     .csdIdacAutoGainEn = CY_CAPSENSE_ENABLE,
00196     .csdCalibrationError = 10u,
00197     .csdIdacGainInitIndex = 4u,
00198     .csdIdacMin = 20u,
00199     .csdIdacCompEn = CY_CAPSENSE_ENABLE,
00200     .csdFineInitTime = 10u,
00201     .csdIdacRowColAlignEn = CY_CAPSENSE_ENABLE,
00202     .csdMfsDividerOffsetF1 = 1u,
00203     .csdMfsDividerOffsetF2 = 2u,
00204     .csxRawTarget = 40u,
00205     .csxIdacGainInitIndex = 2u,
00206     .csxIdacAutocalEn = CY_CAPSENSE_ENABLE,
00207     .csxCalibrationError = 20u,
00208     .csxFineInitTime = 10u,
00209     .csxInitSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
00210     .csxScanSwRes = CY_CAPSENSE_INIT_SW_RES_MEDIUM,
00211     .csxInitShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
00212     .csxScanShieldSwRes = CY_CAPSENSE_SHIELD_SW_RES_MEDIUM,
00213     .csxMfsDividerOffsetF1 = 1u,
00214     .csxMfsDividerOffsetF2 = 2u,
00215 };
00216 
00217 static const cy_stc_capsense_fptr_config_t cy_capsense_fptrConfig =
00218 {
00219 #if (CY_CAPSENSE_CSD_EN == 0)
00220     .fptrCSDSetupWidget = NULL,
00221     .fptrCSDScan = NULL,
00222     .fptrDpProcessCsdWidgetRawCounts = NULL,
00223     .fptrDpProcessCsdWidgetStatus = NULL,
00224     .fptrCSDDisableMode = NULL,
00225     .fptrCSDInitialize = NULL,
00226     .fptrCSDScanISR = NULL,
00227 #else
00228     .fptrCSDSetupWidget = &Cy_CapSense_CSDSetupWidget,
00229     .fptrCSDScan = &Cy_CapSense_CSDScan,
00230     .fptrDpProcessCsdWidgetRawCounts = &Cy_CapSense_DpProcessCsdWidgetRawCounts,
00231     .fptrDpProcessCsdWidgetStatus = &Cy_CapSense_DpProcessCsdWidgetStatus,
00232     .fptrCSDDisableMode = &Cy_CapSense_CSDDisableMode,
00233     .fptrCSDInitialize = &Cy_CapSense_CSDInitialize,
00234     .fptrCSDScanISR = &Cy_CapSense_CSDScanISR,
00235 #endif
00236 
00237 #if (CY_CAPSENSE_CSX_EN == 0)
00238     .fptrCSXSetupWidget = NULL,
00239     .fptrCSXScan = NULL,
00240     .fptrDpProcessCsxWidgetRawCounts = NULL,
00241     .fptrDpProcessCsxWidgetStatus = NULL,
00242     .fptrCSXInitialize = NULL,
00243     .fptrCSXDisableMode = NULL,
00244     .fptrCSXScanISR = NULL,
00245 #else
00246     .fptrCSXSetupWidget = &Cy_CapSense_CSXSetupWidget,
00247     .fptrCSXScan = &Cy_CapSense_CSXScan,
00248     .fptrDpProcessCsxWidgetRawCounts = &Cy_CapSense_DpProcessCsxWidgetRawCounts,
00249     .fptrDpProcessCsxWidgetStatus = &Cy_CapSense_DpProcessCsxWidgetStatus,
00250     .fptrCSXInitialize = &Cy_CapSense_CSXInitialize,
00251     .fptrCSXDisableMode = &Cy_CapSense_CSXDisableMode,
00252     .fptrCSXScanISR = &Cy_CapSense_CSXScanISR,
00253 #endif
00254 
00255 #if (CY_CAPSENSE_ADAPTIVE_FILTER_EN == 0)
00256     .fptrAdaptiveFilterInitializeLib = NULL,
00257     .fptrAdaptiveFilterRunLib = NULL,
00258 #else
00259     .fptrAdaptiveFilterInitializeLib = &Cy_CapSense_AdaptiveFilterInitialize_Lib,
00260     .fptrAdaptiveFilterRunLib = &Cy_CapSense_AdaptiveFilterRun_Lib,
00261 #endif
00262 
00263 #if (CY_CAPSENSE_BALLISTIC_MULTIPLIER_EN == 0)
00264     .fptrBallisticMultiplierLib = NULL,
00265 #else
00266     .fptrBallisticMultiplierLib = &Cy_CapSense_BallisticMultiplier_Lib,
00267 #endif
00268 
00269 #if (CY_CAPSENSE_RAWCOUNT_FILTER_EN == 0)
00270     .fptrInitializeAllFilters = NULL,
00271     .fptrFtRunEnabledFiltersInternal = NULL,
00272 #else
00273     .fptrInitializeAllFilters = &Cy_CapSense_InitializeAllFilters,
00274     .fptrFtRunEnabledFiltersInternal = &Cy_CapSense_FtRunEnabledFiltersInternal,
00275 #endif
00276 
00277 #if (CY_CAPSENSE_CSD_POSITION_FILTER_EN == 0)
00278     .fptrProcessPositionFilters = NULL,
00279 #else
00280     .fptrProcessPositionFilters = &Cy_CapSense_ProcessPositionFilters,
00281 #endif
00282 
00283 #if ((CY_CAPSENSE_CSX_POSITION_FILTER_EN == 0) && (CY_CAPSENSE_CSD_POSITION_FILTER_EN == 0))
00284     .fptrRunPositionFilters = NULL,
00285     .fptrInitPositionFilters = NULL,
00286 #else
00287     .fptrRunPositionFilters = &Cy_CapSense_RunPositionFilters,
00288     .fptrInitPositionFilters = &Cy_CapSense_InitPositionFilters,
00289 #endif
00290 
00291 #if ((CY_CAPSENSE_CSD_BUTTON_EN == 0) && \
00292      (CY_CAPSENSE_CSX_BUTTON_EN == 0) && (CY_CAPSENSE_CSX_MATRIX_EN == 0))
00293     .fptrDpProcessButton = NULL,
00294 #else
00295     .fptrDpProcessButton = &Cy_CapSense_DpProcessButton,
00296 #endif
00297 
00298 #if (CY_CAPSENSE_CSD_SLIDER_EN == 0)
00299     .fptrDpProcessSlider = NULL,
00300 #else
00301     .fptrDpProcessSlider = &Cy_CapSense_DpProcessSlider,
00302 #endif
00303 
00304 #if (CY_CAPSENSE_CSD_MATRIX_EN == 0)
00305     .fptrDpProcessCsdMatrix = NULL,
00306 #else
00307     .fptrDpProcessCsdMatrix = &Cy_CapSense_DpProcessCsdMatrix,
00308 #endif
00309 
00310 #if (CY_CAPSENSE_CSD_TOUCHPAD_EN == 0)
00311     .fptrDpProcessCsdTouchpad = NULL,
00312 #else
00313     .fptrDpProcessCsdTouchpad = &Cy_CapSense_DpProcessCsdTouchpad,
00314 #endif
00315 
00316 #if (CY_CAPSENSE_CSD_PROXIMITY_EN == 0)
00317     .fptrDpProcessProximity = NULL,
00318 #else
00319     .fptrDpProcessProximity = &Cy_CapSense_DpProcessProximity,
00320 #endif
00321 
00322 #if (CY_CAPSENSE_CSX_TOUCHPAD_EN == 0)
00323     .fptrDpProcessCsxTouchpad = NULL,
00324 #else
00325     .fptrDpProcessCsxTouchpad = &Cy_CapSense_DpProcessCsxTouchpad,
00326 #endif
00327 
00328 #if (CY_CAPSENSE_ADVANCED_CENTROID_5X5_EN == 0)
00329     .fptrDpAdvancedCentroidTouchpad = NULL,
00330 #else
00331     .fptrDpAdvancedCentroidTouchpad = &Cy_CapSense_DpAdvancedCentroidTouchpad,
00332 #endif
00333 
00334 #if ((CY_CAPSENSE_CSD_CALIBRATION_EN == 0) && (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0))
00335     .fptrCSDCalibrateWidget = NULL,
00336     .fptrCalibrateAllCsdWidgets = NULL,
00337 #else
00338     .fptrCSDCalibrateWidget = &Cy_CapSense_CSDCalibrateWidget,
00339     .fptrCalibrateAllCsdWidgets = &Cy_CapSense_CalibrateAllCsdWidgets,
00340 #endif
00341 
00342 #if (CY_CAPSENSE_CSX_CALIBRATION_EN == 0)
00343     .fptrCalibrateAllCsxWidgets = NULL,
00344 #else
00345     .fptrCalibrateAllCsxWidgets = &Cy_CapSense_CalibrateAllCsxWidgets,
00346 #endif
00347 
00348 #if (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0)
00349     .fptrRunNoiseEnvelopeLib = NULL,
00350     .fptrDpUpdateThresholds = NULL,
00351     .fptrInitializeNoiseEnvelopeLib = NULL,
00352 #else
00353     .fptrRunNoiseEnvelopeLib = &Cy_CapSense_RunNoiseEnvelope_Lib,
00354     .fptrDpUpdateThresholds = &Cy_CapSense_DpUpdateThresholds,
00355     .fptrInitializeNoiseEnvelopeLib = &Cy_CapSense_InitializeNoiseEnvelope_Lib,
00356 #endif
00357 
00358 #if ((CY_CAPSENSE_SMARTSENSE_HW_EN == 0) && (CY_CAPSENSE_SMARTSENSE_FULL_EN == 0))
00359     .fptrSsAutoTune = NULL,
00360 #else
00361     .fptrSsAutoTune = &Cy_CapSense_SsAutoTune,
00362 #endif
00363 };
00364 
00365 static const cy_stc_capsense_pin_config_t cy_capsense_pinConfig[CY_CAPSENSE_PIN_COUNT] =
00366 {
00367     { /* Button0_Rx0 */
00368         Button0_Rx0_PORT,
00369         Button0_Rx0_PIN,
00370     },
00371     { /* Button0_Tx */
00372         Button0_Tx_PORT,
00373         Button0_Tx_PIN,
00374     },
00375     { /* Button1_Rx0 */
00376         Button1_Rx0_PORT,
00377         Button1_Rx0_PIN,
00378     },
00379     { /* Button1_Tx */
00380         Button1_Tx_PORT,
00381         Button1_Tx_PIN,
00382     },
00383     { /* LinearSlider0_Sns0 */
00384         LinearSlider0_Sns0_PORT,
00385         LinearSlider0_Sns0_PIN,
00386     },
00387     { /* LinearSlider0_Sns1 */
00388         LinearSlider0_Sns1_PORT,
00389         LinearSlider0_Sns1_PIN,
00390     },
00391     { /* LinearSlider0_Sns2 */
00392         LinearSlider0_Sns2_PORT,
00393         LinearSlider0_Sns2_PIN,
00394     },
00395     { /* LinearSlider0_Sns3 */
00396         LinearSlider0_Sns3_PORT,
00397         LinearSlider0_Sns3_PIN,
00398     },
00399     { /* LinearSlider0_Sns4 */
00400         LinearSlider0_Sns4_PORT,
00401         LinearSlider0_Sns4_PIN,
00402     },
00403 };
00404 
00405 #if (CY_CAPSENSE_SHIELD_PIN_COUNT > 0)
00406     static const cy_stc_capsense_pin_config_t cy_capsense_shieldPinConfig[CY_CAPSENSE_SHIELD_PIN_COUNT] =
00407     {
00408     };
00409 #endif
00410 
00411 static const cy_stc_capsense_electrode_config_t cy_capsense_electrodeConfig[CY_CAPSENSE_ELTD_COUNT] =
00412 {
00413     { /* Button0_Rx0 */
00414         .ptrPin = &cy_capsense_pinConfig[0u],
00415         .type = CY_CAPSENSE_ELTD_TYPE_MUT_RX_E,
00416         .numPins = 1u,
00417     },
00418     { /* Button0_Tx */
00419         .ptrPin = &cy_capsense_pinConfig[1u],
00420         .type = CY_CAPSENSE_ELTD_TYPE_MUT_TX_E,
00421         .numPins = 1u,
00422     },
00423     { /* Button1_Rx0 */
00424         .ptrPin = &cy_capsense_pinConfig[2u],
00425         .type = CY_CAPSENSE_ELTD_TYPE_MUT_RX_E,
00426         .numPins = 1u,
00427     },
00428     { /* Button1_Tx */
00429         .ptrPin = &cy_capsense_pinConfig[3u],
00430         .type = CY_CAPSENSE_ELTD_TYPE_MUT_TX_E,
00431         .numPins = 1u,
00432     },
00433     { /* LinearSlider0_Sns0 */
00434         .ptrPin = &cy_capsense_pinConfig[4u],
00435         .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
00436         .numPins = 1u,
00437     },
00438     { /* LinearSlider0_Sns1 */
00439         .ptrPin = &cy_capsense_pinConfig[5u],
00440         .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
00441         .numPins = 1u,
00442     },
00443     { /* LinearSlider0_Sns2 */
00444         .ptrPin = &cy_capsense_pinConfig[6u],
00445         .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
00446         .numPins = 1u,
00447     },
00448     { /* LinearSlider0_Sns3 */
00449         .ptrPin = &cy_capsense_pinConfig[7u],
00450         .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
00451         .numPins = 1u,
00452     },
00453     { /* LinearSlider0_Sns4 */
00454         .ptrPin = &cy_capsense_pinConfig[8u],
00455         .type = CY_CAPSENSE_ELTD_TYPE_SELF_E,
00456         .numPins = 1u,
00457     },
00458 };
00459 
00460 static const cy_stc_capsense_widget_config_t cy_capsense_widgetConfig[CY_CAPSENSE_WIDGET_COUNT] =
00461 {
00462     { /* Button0 */
00463         .ptrWdContext = &cy_capsense_tuner.widgetContext[0u],
00464         .ptrSnsContext = &cy_capsense_tuner.sensorContext[0u],
00465         .ptrEltdConfig = &cy_capsense_electrodeConfig[0u],
00466         .ptrNoiseEnvelope = NULL,
00467         .ptrRawFilterHistory = NULL,
00468         .ptrRawFilterHistoryLow = NULL,
00469         .iirCoeff = 128u,
00470         .ptrDebounceArr = &cy_capsense_debounce[0u],
00471         .ptrDiplexTable = NULL,
00472         .centroidConfig = 0u,
00473         .xResolution = 0u,
00474         .yResolution = 0u,
00475         .numSns = 1u,
00476         .numCols = 1u,
00477         .numRows = 1u,
00478         .ptrPosFilterHistory = NULL,
00479         .ptrCsxTouchHistory = NULL,
00480         .ptrCsxTouchBuffer = NULL,
00481         .ptrCsdTouchBuffer = NULL,
00482         .ptrGestureConfig = NULL,
00483         .ptrGestureContext = NULL,
00484         .ballisticConfig = {
00485             .accelCoeff = 9u,
00486             .speedCoeff = 2u,
00487             .divisorValue = 4u,
00488             .speedThresholdX = 3u,
00489             .speedThresholdY = 4u,
00490         },
00491         .ptrBallisticContext = NULL,
00492         .aiirConfig = {
00493             .maxK = 60u,
00494             .minK = 1u,
00495             .noMovTh = 3u,
00496             .littleMovTh = 7u,
00497             .largeMovTh = 12u,
00498             .divVal = 64u,
00499         },
00500         .advConfig = {
00501             .penultimateTh = 100u,
00502             .virtualSnsTh = 100u,
00503             .crossCouplingTh = 5u,
00504         },
00505         .posFilterConfig = 0u,
00506         .rawFilterConfig = 0u,
00507         .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSX_E,
00508         .wdType = CY_CAPSENSE_WD_BUTTON_E,
00509     },
00510     { /* Button1 */
00511         .ptrWdContext = &cy_capsense_tuner.widgetContext[1u],
00512         .ptrSnsContext = &cy_capsense_tuner.sensorContext[1u],
00513         .ptrEltdConfig = &cy_capsense_electrodeConfig[2u],
00514         .ptrNoiseEnvelope = NULL,
00515         .ptrRawFilterHistory = NULL,
00516         .ptrRawFilterHistoryLow = NULL,
00517         .iirCoeff = 128u,
00518         .ptrDebounceArr = &cy_capsense_debounce[1u],
00519         .ptrDiplexTable = NULL,
00520         .centroidConfig = 0u,
00521         .xResolution = 0u,
00522         .yResolution = 0u,
00523         .numSns = 1u,
00524         .numCols = 1u,
00525         .numRows = 1u,
00526         .ptrPosFilterHistory = NULL,
00527         .ptrCsxTouchHistory = NULL,
00528         .ptrCsxTouchBuffer = NULL,
00529         .ptrCsdTouchBuffer = NULL,
00530         .ptrGestureConfig = NULL,
00531         .ptrGestureContext = NULL,
00532         .ballisticConfig = {
00533             .accelCoeff = 9u,
00534             .speedCoeff = 2u,
00535             .divisorValue = 4u,
00536             .speedThresholdX = 3u,
00537             .speedThresholdY = 4u,
00538         },
00539         .ptrBallisticContext = NULL,
00540         .aiirConfig = {
00541             .maxK = 60u,
00542             .minK = 1u,
00543             .noMovTh = 3u,
00544             .littleMovTh = 7u,
00545             .largeMovTh = 12u,
00546             .divVal = 64u,
00547         },
00548         .advConfig = {
00549             .penultimateTh = 100u,
00550             .virtualSnsTh = 100u,
00551             .crossCouplingTh = 5u,
00552         },
00553         .posFilterConfig = 0u,
00554         .rawFilterConfig = 0u,
00555         .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSX_E,
00556         .wdType = CY_CAPSENSE_WD_BUTTON_E,
00557     },
00558     { /* LinearSlider0 */
00559         .ptrWdContext = &cy_capsense_tuner.widgetContext[2u],
00560         .ptrSnsContext = &cy_capsense_tuner.sensorContext[2u],
00561         .ptrEltdConfig = &cy_capsense_electrodeConfig[4u],
00562         .ptrNoiseEnvelope = NULL,
00563         .ptrRawFilterHistory = NULL,
00564         .ptrRawFilterHistoryLow = NULL,
00565         .iirCoeff = 128u,
00566         .ptrDebounceArr = &cy_capsense_debounce[2u],
00567         .ptrDiplexTable = NULL,
00568         .centroidConfig = 1u,
00569         .xResolution = 100u,
00570         .yResolution = 0u,
00571         .numSns = 5u,
00572         .numCols = 5u,
00573         .numRows = 0u,
00574         .ptrPosFilterHistory = &cy_capsense_touchFilterHistory[0u],
00575         .ptrCsxTouchHistory = NULL,
00576         .ptrCsxTouchBuffer = NULL,
00577         .ptrCsdTouchBuffer = NULL,
00578         .ptrGestureConfig = NULL,
00579         .ptrGestureContext = NULL,
00580         .ballisticConfig = {
00581             .accelCoeff = 9u,
00582             .speedCoeff = 2u,
00583             .divisorValue = 4u,
00584             .speedThresholdX = 3u,
00585             .speedThresholdY = 4u,
00586         },
00587         .ptrBallisticContext = NULL,
00588         .aiirConfig = {
00589             .maxK = 60u,
00590             .minK = 1u,
00591             .noMovTh = 3u,
00592             .littleMovTh = 7u,
00593             .largeMovTh = 12u,
00594             .divVal = 64u,
00595         },
00596         .advConfig = {
00597             .penultimateTh = 100u,
00598             .virtualSnsTh = 100u,
00599             .crossCouplingTh = 5u,
00600         },
00601         .posFilterConfig = 272u,
00602         .rawFilterConfig = 0u,
00603         .senseMethod = CY_CAPSENSE_SENSE_METHOD_CSD_E,
00604         .wdType = CY_CAPSENSE_WD_LINEAR_SLIDER_E,
00605     },
00606 };
00607 
00608 cy_stc_capsense_tuner_t cy_capsense_tuner =
00609 {
00610     .commonContext = {
00611         .configId = 0xca04,
00612         .tunerCmd = 0u,
00613         .scanCounter = 0u,
00614         .tunerSt = 0u,
00615         .initDone = 0u,
00616         .ptrSSCallback = NULL,
00617         .ptrEOSCallback = NULL,
00618         .ptrTunerSendCallback = NULL,
00619         .ptrTunerReceiveCallback = NULL,
00620         .status = 0u,
00621         .timestampInterval = 1u,
00622         .timestamp = 0u,
00623         .modCsdClk = 4u,
00624         .modCsxClk = 4u,
00625         .tunerCnt = 0u,
00626     },
00627     .widgetContext = {
00628         {
00629             .fingerCap = 300u,
00630             .sigPFC = 0u,
00631             .resolution = 100u,
00632             .maxRawCount = 0u,
00633             .fingerTh = 90u,
00634             .proxTh = 200u,
00635             .lowBslnRst = 30u,
00636             .snsClk = 80u,
00637             .rowSnsClk = 2u,
00638             .gestureDetected = 0u,
00639             .gestureDirection = 0u,
00640             .xDelta = 0u,
00641             .yDelta = 0u,
00642             .noiseTh = 40u,
00643             .nNoiseTh = 40u,
00644             .hysteresis = 20u,
00645             .onDebounce = 3u,
00646             .snsClkSource = CY_CAPSENSE_CLK_SOURCE_AUTO_MASK,
00647             .idacMod = { 32u, 32u, 32u, },
00648             .idacGainIndex = 2u,
00649             .rowIdacMod = { 32u, 32u, 32u, },
00650             .bslnCoeff = 1u,
00651             .status = 0u,
00652             .wdTouch = {
00653                 .ptrPosition = NULL,
00654                 .numPosition = 0,
00655             },
00656         },
00657         {
00658             .fingerCap = 160u,
00659             .sigPFC = 0u,
00660             .resolution = 100u,
00661             .maxRawCount = 0u,
00662             .fingerTh = 90u,
00663             .proxTh = 200u,
00664             .lowBslnRst = 30u,
00665             .snsClk = 80u,
00666             .rowSnsClk = 16u,
00667             .gestureDetected = 0u,
00668             .gestureDirection = 0u,
00669             .xDelta = 0u,
00670             .yDelta = 0u,
00671             .noiseTh = 40u,
00672             .nNoiseTh = 40u,
00673             .hysteresis = 20u,
00674             .onDebounce = 3u,
00675             .snsClkSource = CY_CAPSENSE_CLK_SOURCE_AUTO_MASK,
00676             .idacMod = { 32u, 32u, 32u, },
00677             .idacGainIndex = 2u,
00678             .rowIdacMod = { 32u, 32u, 32u, },
00679             .bslnCoeff = 1u,
00680             .status = 0u,
00681             .wdTouch = {
00682                 .ptrPosition = NULL,
00683                 .numPosition = 0,
00684             },
00685         },
00686         {
00687             .fingerCap = 100u,
00688             .sigPFC = 0u,
00689             .resolution = 13u,
00690             .maxRawCount = 0u,
00691             .fingerTh = 100u,
00692             .proxTh = 200u,
00693             .lowBslnRst = 30u,
00694             .snsClk = 34u,
00695             .rowSnsClk = 2u,
00696             .gestureDetected = 0u,
00697             .gestureDirection = 0u,
00698             .xDelta = 0u,
00699             .yDelta = 0u,
00700             .noiseTh = 40u,
00701             .nNoiseTh = 40u,
00702             .hysteresis = 10u,
00703             .onDebounce = 3u,
00704             .snsClkSource = CY_CAPSENSE_CLK_SOURCE_DIRECT,
00705             .idacMod = { 32u, 32u, 32u, },
00706             .idacGainIndex = 4u,
00707             .rowIdacMod = { 32u, 32u, 32u, },
00708             .bslnCoeff = 1u,
00709             .status = 0u,
00710             .wdTouch = {
00711                 .ptrPosition = &cy_capsense_tuner.position[0u],
00712                 .numPosition = 1,
00713             },
00714         },
00715     },
00716     .sensorContext = {
00717         {
00718             .raw = 0u,
00719             .bsln = 0u,
00720             .diff = 0u,
00721             .status = 0u,
00722             .negBslnRstCnt = 0u,
00723             .idacComp = 32u,
00724             .bslnExt = 0u,
00725         },
00726         {
00727             .raw = 0u,
00728             .bsln = 0u,
00729             .diff = 0u,
00730             .status = 0u,
00731             .negBslnRstCnt = 0u,
00732             .idacComp = 32u,
00733             .bslnExt = 0u,
00734         },
00735         {
00736             .raw = 0u,
00737             .bsln = 0u,
00738             .diff = 0u,
00739             .status = 0u,
00740             .negBslnRstCnt = 0u,
00741             .idacComp = 32u,
00742             .bslnExt = 0u,
00743         },
00744         {
00745             .raw = 0u,
00746             .bsln = 0u,
00747             .diff = 0u,
00748             .status = 0u,
00749             .negBslnRstCnt = 0u,
00750             .idacComp = 32u,
00751             .bslnExt = 0u,
00752         },
00753         {
00754             .raw = 0u,
00755             .bsln = 0u,
00756             .diff = 0u,
00757             .status = 0u,
00758             .negBslnRstCnt = 0u,
00759             .idacComp = 32u,
00760             .bslnExt = 0u,
00761         },
00762         {
00763             .raw = 0u,
00764             .bsln = 0u,
00765             .diff = 0u,
00766             .status = 0u,
00767             .negBslnRstCnt = 0u,
00768             .idacComp = 32u,
00769             .bslnExt = 0u,
00770         },
00771         {
00772             .raw = 0u,
00773             .bsln = 0u,
00774             .diff = 0u,
00775             .status = 0u,
00776             .negBslnRstCnt = 0u,
00777             .idacComp = 32u,
00778             .bslnExt = 0u,
00779         },
00780     },
00781     .position = {
00782         {
00783             .x = 0u,
00784             .y = 0u,
00785             .z = 0u,
00786             .id = 0u,
00787         },
00788     },
00789 };
00790 
00791 cy_stc_capsense_context_t cy_capsense_context =
00792 {
00793     .ptrCommonConfig = &cy_capsense_commonConfig,
00794     .ptrCommonContext = &cy_capsense_tuner.commonContext,
00795     .ptrInternalContext = &cy_capsense_internalContext,
00796     .ptrWdConfig = &cy_capsense_widgetConfig[0u],
00797     .ptrWdContext = &cy_capsense_tuner.widgetContext[0u],
00798     .ptrPinConfig = &cy_capsense_pinConfig[0u],
00799     .ptrShieldPinConfig = NULL,
00800     .ptrActiveScanSns = &cy_capsense_activeScanSns,
00801     .ptrFptrConfig = (const void *) &cy_capsense_fptrConfig,
00802 };
00803 
00804 #endif /* CY_CAPSENSE_CORE == __CORTEX_M */
00805 
00806 /* [] END OF FILE */