@@ -17,8 +17,8 @@ Copyright (c) 2017 Microchip. All rights reserved.
1717------------------------------------------------------------------------------
1818============================================================================*/
1919
20- #ifndef TOUCH_H
21- #define TOUCH_H
20+ #ifndef QTOUCH_H
21+ #define QTOUCH_H
2222
2323#ifdef __cplusplus
2424extern "C" {
@@ -65,7 +65,7 @@ extern "C" {
6565 * Range: FREQ_SEL_0 - FREQ_SEL_15 , FREQ_SEL_SPREAD
6666 * Default value: FREQ_SEL_0.
6767 */
68- #define DEF_SEL_FREQ_INIT FREQ_SEL_8
68+ #define DEF_SEL_FREQ_INIT FREQ_SEL_0
6969
7070/*----------------------------------------------------------------------------
7171 * defines
@@ -86,63 +86,23 @@ extern "C" {
8686 * Gain , Digital Gain), filter level}
8787 */
8888// Slider 1 buttons
89- #define NODE_0_PARAMS \
90- {X_NONE, \
91- Y_LINE(26), \
92- 0, \
93- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
94- NODE_GAIN(GAIN_4, GAIN_4), \
95- FILTER_LEVEL_512}
96- #define NODE_1_PARAMS \
97- {X_NONE, \
98- Y_LINE(27), \
99- 0, \
100- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
101- NODE_GAIN(GAIN_4, GAIN_4), \
102- FILTER_LEVEL_512}
103- #define NODE_2_PARAMS \
104- {X_NONE, \
105- Y_LINE(28), \
106- 0, \
107- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
108- NODE_GAIN(GAIN_4, GAIN_4), \
109- FILTER_LEVEL_512}
110- #define NODE_3_PARAMS \
111- {X_NONE, \
112- Y_LINE(29), \
113- 0, \
114- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
115- NODE_GAIN(GAIN_4, GAIN_4), \
116- FILTER_LEVEL_512}
89+ #define NODE_0_PARAMS \
90+ {X_NONE, Y_LINE(26), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_2, GAIN_8), FILTER_LEVEL_64}
91+ #define NODE_1_PARAMS \
92+ {X_NONE, Y_LINE(27), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_1, GAIN_8), FILTER_LEVEL_64}
93+ #define NODE_2_PARAMS \
94+ {X_NONE, Y_LINE(28), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_1, GAIN_8), FILTER_LEVEL_64}
95+ #define NODE_3_PARAMS \
96+ {X_NONE, Y_LINE(29), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_2, GAIN_8), FILTER_LEVEL_64}
11797// Slider 0 buttons
118- #define NODE_4_PARAMS \
119- {X_NONE, \
120- Y_LINE(30), \
121- 0, \
122- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
123- NODE_GAIN(GAIN_4, GAIN_4), \
124- FILTER_LEVEL_512}
125- #define NODE_5_PARAMS \
126- {X_NONE, \
127- Y_LINE(31), \
128- 0, \
129- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
130- NODE_GAIN(GAIN_4, GAIN_4), \
131- FILTER_LEVEL_512}
132- #define NODE_6_PARAMS \
133- {X_NONE, \
134- Y_LINE(20), \
135- 0, \
136- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
137- NODE_GAIN(GAIN_4, GAIN_4), \
138- FILTER_LEVEL_512}
139- #define NODE_7_PARAMS \
140- {X_NONE, \
141- Y_LINE(21), \
142- 0, \
143- NODE_RSEL_PRSC(RSEL_VAL_20, PRSC_DIV_SEL_1), \
144- NODE_GAIN(GAIN_4, GAIN_4), \
145- FILTER_LEVEL_512}
98+ #define NODE_4_PARAMS \
99+ {X_NONE, Y_LINE(30), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_2, GAIN_8), FILTER_LEVEL_64}
100+ #define NODE_5_PARAMS \
101+ {X_NONE, Y_LINE(31), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_1, GAIN_8), FILTER_LEVEL_64}
102+ #define NODE_6_PARAMS \
103+ {X_NONE, Y_LINE(20), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_1, GAIN_8), FILTER_LEVEL_64}
104+ #define NODE_7_PARAMS \
105+ {X_NONE, Y_LINE(21), 0, PRSC_DIV_SEL_4, NODE_GAIN(GAIN_2, GAIN_8), FILTER_LEVEL_64}
146106
147107/**********************************************************/
148108/***************** Key Params ******************/
@@ -157,75 +117,68 @@ extern "C" {
157117 * {Sensor Threshold, Sensor Hysterisis, Sensor AKS}
158118 */
159119// 0..3 higher Slider left to right 4..7 lower Slider right to left
160- #define KEY_0_PARAMS {16, HYST_50, NO_AKS_GROUP }
161- #define KEY_1_PARAMS {16, HYST_50, NO_AKS_GROUP }
162- #define KEY_2_PARAMS {16, HYST_50, NO_AKS_GROUP }
163- #define KEY_3_PARAMS {16, HYST_50, NO_AKS_GROUP }
164- #define KEY_4_PARAMS {16, HYST_50, NO_AKS_GROUP }
165- #define KEY_5_PARAMS {16, HYST_50, NO_AKS_GROUP }
166- #define KEY_6_PARAMS {16, HYST_50, NO_AKS_GROUP }
167- #define KEY_7_PARAMS {16, HYST_50, NO_AKS_GROUP }
120+ #define KEY_0_PARAMS {12, HYST_25, AKS_GROUP_1 }
121+ #define KEY_1_PARAMS {12, HYST_25, AKS_GROUP_1 }
122+ #define KEY_2_PARAMS {12, HYST_25, AKS_GROUP_1 }
123+ #define KEY_3_PARAMS {12, HYST_25, AKS_GROUP_1 }
124+ #define KEY_4_PARAMS {12, HYST_25, AKS_GROUP_2 }
125+ #define KEY_5_PARAMS {12, HYST_25, AKS_GROUP_2 }
126+ #define KEY_6_PARAMS {12, HYST_25, AKS_GROUP_2 }
127+ #define KEY_7_PARAMS {12, HYST_25, AKS_GROUP_2 }
168128
169129/* De-bounce counter for additional measurements to confirm touch detection
170130 * Range: 0 to 255.
171131 * Default value: 4.
172132 */
173- #define DEF_TOUCH_DET_INT 0
133+ #define DEF_TOUCH_DET_INT 1
174134
175135/* De-bounce counter for additional measurements to confirm away from touch signal
176136 * to initiate Away from touch re-calibration.
177137 * Range: 0 to 255.
178138 * Default value: 5.
179139 */
180- #define DEF_ANTI_TCH_DET_INT 0
140+ #define DEF_ANTI_TCH_DET_INT 1
181141
182142/* Threshold beyond with automatic sensor recalibration is initiated.
183143 * Range: RECAL_100/ RECAL_50 / RECAL_25 / RECAL_12_5 / RECAL_6_25 / MAX_RECAL
184144 * Default value: RECAL_100.
185145 */
186- #define DEF_ANTI_TCH_RECAL_THRSHLD RECAL_50
146+ #define DEF_ANTI_TCH_RECAL_THRSHLD RECAL_100
187147
188148/* Rate at which sensor reference value is adjusted towards sensor signal value
189149 * when signal value is greater than reference.
190150 * Units: 200ms
191151 * Range: 0-255
192152 * Default value: 20u = 4 seconds.
193153 */
194- #define DEF_TCH_DRIFT_RATE 20
154+ #define DEF_TCH_DRIFT_RATE 1
195155
196156/* Rate at which sensor reference value is adjusted towards sensor signal value
197157 * when signal value is less than reference.
198158 * Units: 200ms
199159 * Range: 0-255
200160 * Default value: 5u = 1 second.
201161 */
202- #define DEF_ANTI_TCH_DRIFT_RATE 5
162+ #define DEF_ANTI_TCH_DRIFT_RATE 1
203163
204164/* Time to restrict drift on all sensor when one or more sensors are activated.
205165 * Units: 200ms
206166 * Range: 0-255
207167 * Default value: 20u = 4 seconds.
208168 */
209- #define DEF_DRIFT_HOLD_TIME 20
169+ #define DEF_DRIFT_HOLD_TIME 1
210170
211171/* Set mode for additional sensor measurements based on touch activity.
212172 * Range: REBURST_NONE / REBURST_UNRESOLVED / REBURST_ALL
213173 * Default value: REBURST_UNRESOLVED
214174 */
215- #define DEF_REBURST_MODE REBURST_ALL
175+ #define DEF_REBURST_MODE REBURST_NONE
216176
217177/* Sensor maximum ON duration upon touch.
218178 * Range: 0-255
219179 * Default value: 0
220180 */
221- #define DEF_MAX_ON_DURATION 0
222-
223- /*
224- * The count that the reference value must be above the measured value to
225- * allow the force calibrate procedure to overwrite the reference to the
226- * current measured value.
227- */
228- #define KEY_FORCE_CALIBRATE_THRESHOLD 10
181+ #define DEF_MAX_ON_DURATION 50
229182
230183/**********************************************************/
231184/***************** Slider/Wheel Parameters ****************/
@@ -237,21 +190,24 @@ extern "C" {
237190 * This allows low noise button readings while keeping
238191 * fast responsiveness.
239192 */
193+
240194#define DEF_NUM_SCROLLERS 2 // Number of scrollers (sliders or wheels)
241195#define DEF_SCROLLER_NUM_CHANNELS 4 // Number of channels per scroller
242196#define DEF_SCROLLER_OFFSET_0 4 // Index of first button in scroller
243197#define DEF_SCROLLER_OFFSET_1 0 // Index of first button in scroller
244198#define DEF_SCROLLER_RESOLUTION 256 // Scroller resolution in bits
245- #define DEF_SCROLLER_DET_THRESHOLD 25 // Scroller detect threshold
246- #define DEF_SCROLLER_TOUCH_THRESHOLD 25 // Scroller active threshold
247- #define DEF_SCROLLER_UNTOUCH_THRESHOLD 20 // Scroller active threshold
199+ #define DEF_SCROLLER_DET_THRESHOLD 12 // Scroller detect threshold
200+ #define DEF_SCROLLER_TOUCH_THRESHOLD 12 // Scroller active threshold
201+ #define DEF_SCROLLER_UNTOUCH_THRESHOLD 9 // Scroller active threshold
248202#define DEF_SCROLLER_DEADBAND 13 // 13 bits = 5% of 256-bit range
249203#define DEF_SCROLLER_NUM_PREV_POS \
250204 4 // Number of previous scroller positions to remember; used in a simple filter
251205#define DEF_SCROLLER_OFF \
252206 0xFFFF // Marker for indicating scroller reading does not exceed detection threshold
207+ /*
253208#define DEF_SENSOR_EDGE_WEIGHT \
254209 0.15 // Percent added weight to edge sensors, which are physically smaller
210+ */
255211#define DEF_SENSOR_NUM_PREV_POS \
256212 4 // Number of previous sensor positions to remember; used in a simple filter
257213#define DEF_SENSOR_CEILING \
@@ -261,4 +217,4 @@ extern "C" {
261217#ifdef __cplusplus
262218}
263219#endif // __cplusplus
264- #endif // TOUCH_C
220+ #endif // QTOUCH_H
0 commit comments