00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00065 #ifndef __MTOUCH_PROCESSCONFIGURATION_H
00066 #define __MTOUCH_PROCESSCONFIGURATION_H
00067
00069
00070
00071
00072 #ifndef int8_t
00073 typedef signed char int8_t;
00074 #define int8_t int8_t
00075 #define INT8_MIN (-128)
00076 #define INT8_MAX (127)
00077 #endif
00078 #ifndef int16_t
00079 typedef signed int int16_t;
00080 #define int16_t int16_t
00081 #define INT16_MIN (-32768)
00082 #define INT16_MAX (32767)
00083 #endif
00084 #ifndef int24_t
00085 typedef signed short long int int24_t;
00086 #define int24_t int24_t
00087 #define INT24_MIN (-8388608L)
00088 #define INT24_MAX (8388607L)
00089 #endif
00090 #ifndef int32_t
00091 typedef signed long int int32_t;
00092 #define int32_t int32_t
00093 #define INT32_MIN (-2147483648L)
00094 #define INT32_MAX (2147483647L)
00095 #endif
00096 #ifndef uint8_t
00097 typedef unsigned char uint8_t;
00098 #define uint8_t uint8_t
00099 #define UINT8_MAX (255)
00100 #endif
00101 #ifndef uint16_t
00102 typedef unsigned int uint16_t;
00103 #define uint16_t uint16_t
00104 #define UINT16_MAX (65535U)
00105 #endif
00106 #ifndef uint24_t
00107 typedef unsigned short long int uint24_t;
00108 #define uint24_t uint24_t
00109 #define UINT24_MAX (16777216UL)
00110 #endif
00111 #ifndef uint32_t
00112 typedef unsigned long int uint32_t;
00113 #define uint32_t uint32_t
00114 #define UINT32_MAX (4294967295UL)
00115 #endif
00116
00117
00118 #if defined(HI_TECH_C)
00119 #pragma warning disable 1395 // Disables the following message from appearing at compile time:
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135 #endif
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 #define __paste(a,b) __pasteX(a,b) // Use this macro to concatonate 2 strings in the pre-compiler
00147 #define __pasteX(a,b) a##b // Do not use directly. Use __paste(a,b) instead.
00148 #define __paste2(a,b) __paste2X(a,b)
00149 #define __paste2X(a,b) a##b
00150 #define __paste3(a,b) __paste3X(a,b)
00151 #define __paste3X(a,b) a##b
00152 #define __paste4(a,b) __paste4X(a,b)
00153 #define __paste4X(a,b) a##b
00154 #define __paste5(a,b) __paste5X(a,b)
00155 #define __paste5X(a,b) a##b
00156
00157 #define __3paste(a,b,c) __3pasteX(a,b,c) // Use this macro to concatonate 3 strings in the pre-compiler
00158 #define __4paste(a,b,c,d) __4pasteX(a,b,c,d) // Use this macro to concatonate 4 strings in the pre-compiler
00159 #define __5paste(a,b,c,d,e) __5pasteX(a,b,c,d,e) // Use this macro to concatonate 5 strings in the pre-compiler
00160 #define __3pasteX(a,b,c) a##b##c // Do not use directly. Use __paste3(a,b,c) instead.
00161 #define __4pasteX(a,b,c,d) a##b##c##d // Do not use directly. Use __paste4(a,b,c,d) instead.
00162 #define __5pasteX(a,b,c,d,e) a##b##c##d##e // Do not use directly. Use __paste5(a,b,c,d,e) instead.
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173 #if defined(__PICC18__)
00174 #if (_HTC_VER_MAJOR_ < 9) || ((_HTC_VER_MAJOR_ == 9) && (_HTC_VER_MINOR_ < 80))
00175 #error The mTouch Framework is not compatible with your version of the compiler. Please update to Hi-Tech PICC-18 9.80 or later - currently available on microchip.com
00176 #endif
00177 #endif
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 #if defined(_16F1827) || defined(_16LF1827) || defined(_16F1826) || defined(_16LF1826) || defined(_16F1823) || defined(_16LF1823) || defined(_12F1822) || defined(_12LF1822) || defined(_16F1824) || defined(_16LF1824) || defined(_16F1825) || defined(_16LF1825) || defined(_16F1828) || defined(_16LF1828) || defined(_16F1829) || defined(_16LF1829)
00191 #include "Alternative Configurations/mTouch_hardwareProfile_16F182x.h"
00192 #define _16F182x
00193 #elif defined(_12F1840) || defined(_12LF1840)
00194 #include "Alternative Configurations/mTouch_hardwareProfile_12F184x.h"
00195 #define _12F184x
00196 #elif defined(_16F1847) || defined(_16LF1847)
00197 #include "Alternative Configurations/mTouch_hardwareProfile_16F184x.h"
00198 #define _16F184x
00199 #elif defined(_16F1933) || defined(_16LF1933) || defined(_16F1934) || defined(_16LF1934) || defined(_16F1936) || defined(_16LF1936) || defined(_16F1937) || defined(_16LF1937) || defined(_16F1938) || defined(_16LF1938) || defined(_16F1939) || defined(_16LF1939)
00200 #include "Alternative Configurations/mTouch_hardwareProfile_16F193x.h"
00201 #define _16F193x
00202 #elif defined(_16F1946) || defined(_16LF1946) || defined(_16F1947) || defined(_16LF1947)
00203 #include "Alternative Configurations/mTouch_hardwareProfile_16F194x.h"
00204 #define _16F194x
00205 #elif defined(_16LF1902) || defined(_16LF1903) || defined(_16LF1904) || defined(_16LF1906) || defined(_16LF1907)
00206 #include "Alternative Configurations/mTouch_hardwareProfile_16LF190x.h"
00207 #define _16LF190x
00208 #elif defined(_16F1526) || defined(_16LF1526) || defined(_16F1527) || defined(_16LF1527)
00209 #include "Alternative Configurations/mTouch_hardwareProfile_16F152x.h"
00210 #define _16F152x
00211 #elif defined(_16F1516) || defined(_16LF1516) || defined(_16F1517) || defined(_16LF1517) || defined(_16F1518) || defined(_16LF1518) || defined(_16F1519) || defined(_16LF1519)
00212 #include "Alternative Configurations/mTouch_hardwareProfile_16F151x.h"
00213 #define _16F151x
00214 #elif defined(_16F1507) || defined(_16LF1507) || defined(_16F1509) || defined(_16LF1509)
00215 #include "Alternative Configurations/mTouch_hardwareProfile_16F150x.h"
00216 #define _16F150x
00217 #elif defined(_16F913) || defined(_16F914) || defined(_16F916) || defined(_16F917) || defined(_16F946)
00218 #include "Alternative Configurations/mTouch_hardwareProfile_16F91x.h"
00219 #elif defined(_16F882) || defined(_16F883) || defined(_16F884) || defined(_16F886) || defined(_16F887)
00220 #include "Alternative Configurations/mTouch_hardwareProfile_16F88x.h"
00221 #elif defined(_16F818) || defined(_16F819)
00222 #include "Alternative Configurations/mTouch_hardwareProfile_16F81x.h"
00223 #elif defined(_16F785) || defined(_16HV785)
00224 #include "Alternative Configurations/mTouch_hardwareProfile_16F785.h"
00225 #elif defined(_16F720) || defined(_16LF720) || defined(_16F721) || defined(_16LF721) || defined(_16F722) || defined(_16LF722) || defined(_16F722A) || defined(_16LF722A) || defined(_16F723) || defined(_16LF723) || defined(_16F723A) || defined(_16LF723A) || defined(_16F724) || defined(_16LF724) || defined(_16F726) || defined(_16LF726) || defined(_16F727) || defined(_16LF727)
00226 #include "Alternative Configurations/mTouch_hardwareProfile_16F72x.h"
00227 #elif defined(_12F615) || defined(_12HV615) || defined(_12F617)
00228 #include "Alternative Configurations/mTouch_hardwareProfile_12F61x.h"
00229 #define _12F61x
00230 #elif defined(_16F616) || defined(_16HV616)
00231 #include "Alternative Configurations/mTouch_hardwareProfile_16F61x.h"
00232 #define _16F61x
00233 #elif defined(_16F677) || defined(_16F685) || defined(_16F687) || defined(_16F688) || defined(_16F689) || defined(_16F690)
00234 #include "Alternative Configurations/mTouch_hardwareProfile_16F68x.h"
00235 #define _16F68x
00236 #elif defined(_16F684)
00237 #include "Alternative Configurations/mTouch_hardwareProfile_16F684.h"
00238 #define _16F68x
00239 #elif defined(_12F683)
00240 #include "Alternative Configurations/mTouch_hardwareProfile_12F683.h"
00241 #elif defined(_18F24J50) || defined(_18LF24J50) || defined(_18F25J50) || defined(_18LF25J50) || defined(_18F26J50) || defined(_18LF26J50) || defined(_18F44J50) || defined(_18LF44J50) || defined(_18F45J50) || defined(_18LF45J50) || defined(_18F46J50) || defined(_18LF46J50) || defined(_18F65J50) || defined(_18F66J50) || defined(_18F67J50) || defined(_18F85J50) || defined(_18F86J50) || defined(_18F87J50) \
00242 || defined(__18F24J50) || defined(__18LF24J50) || defined(__18F25J50) || defined(__18LF25J50) || defined(__18F26J50) || defined(__18LF26J50) || defined(__18F44J50) || defined(__18LF44J50) || defined(__18F45J50) || defined(__18LF45J50) || defined(__18F46J50) || defined(__18LF46J50) || defined(__18F65J50) || defined(__18F66J50) || defined(__18F67J50) || defined(__18F85J50) || defined(__18F86J50) || defined(__18F87J50)
00243 #include "Alternative Configurations/mTouch_hardwareProfile_18FxxJ50.h"
00244 #define _18FxxJ50
00245 #else
00246 #error The currently chosen processor is not yet supported by the mTouch Framework.
00247 #endif
00248
00249
00250 #if !defined(PIC_ADC_ADFM_RIGHT)
00251 #define PIC_ADC_ADFM_RIGHT 1
00252 #endif
00253 #if !defined(PIC_ADC_ADFM_LEFT)
00254 #define PIC_ADC_ADFM_LEFT 0
00255 #endif
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266 #if defined(MTOUCH_BOARD_REVISION) && defined(MTOUCH_SOFTWARE_REVISION)
00267 #define MTOUCH_FIRMWARE_VERSION ((MTOUCH_BOARD_REVISION << 8) | MTOUCH_SOFTWARE_REVISION)
00268 #endif
00269
00270 #if defined(MTOUCH_NUMBER_SENSORS) && (MTOUCH_NUMBER_SENSORS > 0)
00271 #if !defined(MTOUCH_INTEGRATION_TYPE)
00272 #define MTOUCH_INTEGRATION_TYPE MTOUCH_CONTROLS_ISR
00273 #warning MTOUCH_INTEGRATION_TYPE not defined. The framework will attempt to control 100% of the ISR, by default.
00274 #else
00275 #if (MTOUCH_INTEGRATION_TYPE != MTOUCH_CONTROLS_ISR) && (MTOUCH_INTEGRATION_TYPE != MTOUCH_CALLED_FROM_ISR) && (MTOUCH_INTEGRATION_TYPE != MTOUCH_CALLED_FROM_MAINLOOP)
00276 #undef MTOUCH_INTEGRATION_TYPE
00277 #define MTOUCH_INTEGRATION_TYPE MTOUCH_CONTROLS_ISR
00278 #warning MTOUCH_INTEGRATION_TYPE defined to an invalid value. Defaulting to MTOUCH_CONTROLS_ISR. The framework will attempt to control 100% of the ISR.
00279 #endif
00280 #endif
00281 #else
00282 #error You must have at least one mTouch sensor enabled. Please use mTouch_config.h to reconfigure the mTouch framework's sensors.
00283 #endif
00284
00285
00286 #if !defined(MTOUCH_RELEASE_THRESH_FACTOR)
00287 #warning MTOUCH_RELEASE_THRESH_FACTOR must be defined in the configuration file. Setting to '0.5'.
00288 #define MTOUCH_RELEASE_THRESH_FACTOR 0.5
00289 #endif
00290 #if defined(MTOUCH_BASELINE_WEIGHT)
00291 #if ((MTOUCH_BASELINE_WEIGHT != 1) && (MTOUCH_BASELINE_WEIGHT != 2) && (MTOUCH_BASELINE_WEIGHT != 3) && (MTOUCH_BASELINE_WEIGHT != 4))
00292 #warning Invalid value for MTOUCH_BASELINE_WEIGHT. Setting to default value of 3.
00293 #undef MTOUCH_BASELINE_WEIGHT
00294 #define MTOUCH_BASELINE_WEIGHT 3
00295 #endif
00296 #endif
00297
00298 #if !defined(MTOUCH_POWER_UP_SAMPLES)
00299 #warning MTOUCH_POWER_UP_SAMPLES must be defined in the configuration file. Setting to '50'.
00300 #define MTOUCH_POWER_UP_SAMPLES 50
00301 #else
00302 #if MTOUCH_POWER_UP_SAMPLES > 65535
00303 #warning MTOUCH_POWER_UP_SAMPLES exceeds the maximum limit of 65535. Setting to '65535'.
00304 #undef MTOUCH_POWER_UP_SAMPLES
00305 #define MTOUCH_POWER_UP_SAMPLES 65535
00306 #endif
00307 #if MTOUCH_POWER_UP_SAMPLES < 1
00308 #warning MTOUCH_POWER_UP_SAMPLES must be at least '1'. Setting to '1'.
00309 #undef MTOUCH_POWER_UP_SAMPLES
00310 #define MTOUCH_POWER_UP_SAMPLES 1
00311 #endif
00312 #endif
00313 #if defined (MTOUCH_BUTTON_TIMEOUT)
00314 #if MTOUCH_BUTTON_TIMEOUT > 65535
00315 #warning MTOUCH_BUTTON_TIMEOUT exceeds the maximum limit of 65535. Setting to '65535'.
00316 #undef MTOUCH_BUTTON_TIMEOUT
00317 #define MTOUCH_BUTTON_TIMEOUT 65535
00318 #endif
00319 #endif
00320 #if defined(MTOUCH_BUTTON_TIMEOUT)
00321 #if MTOUCH_BUTTON_TIMEOUT > MTOUCH_POWER_UP_SAMPLES
00322 #define CVD_TIMER_MAX MTOUCH_BUTTON_TIMEOUT
00323 #else
00324 #define CVD_TIMER_MAX MTOUCH_POWER_UP_SAMPLES
00325 #endif
00326 #else
00327 #define CVD_TIMER_MAX MTOUCH_POWER_UP_SAMPLES
00328 #endif
00329 #if CVD_TIMER_MAX > 0
00330 #if CVD_TIMER_MAX > 1
00331 #if CVD_TIMER_MAX > 3
00332 #if CVD_TIMER_MAX > 7
00333 #if CVD_TIMER_MAX > 15
00334 #if CVD_TIMER_MAX > 31
00335 #if CVD_TIMER_MAX > 63
00336 #if CVD_TIMER_MAX > 127
00337 #if CVD_TIMER_MAX > 255
00338 #if CVD_TIMER_MAX > 511
00339 #if CVD_TIMER_MAX > 1023
00340 #if CVD_TIMER_MAX > 2047
00341 #if CVD_TIMER_MAX > 4096
00342 #if CVD_TIMER_MAX > 8192
00343 #if CVD_TIMER_MAX > 16384
00344 #if CVD_TIMER_MAX > 32768
00345 #define CVD_STATE_TIMER_BITS 16
00346 #else
00347 #define CVD_STATE_TIMER_BITS 15
00348 #endif
00349 #else
00350 #define CVD_STATE_TIMER_BITS 14
00351 #endif
00352 #else
00353 #define CVD_STATE_TIMER_BITS 13
00354 #endif
00355 #else
00356 #define CVD_STATE_TIMER_BITS 12
00357 #endif
00358 #else
00359 #define CVD_STATE_TIMER_BITS 11
00360 #endif
00361 #else
00362 #define CVD_STATE_TIMER_BITS 10
00363 #endif
00364 #else
00365 #define CVD_STATE_TIMER_BITS 9
00366 #endif
00367 #else
00368 #define CVD_STATE_TIMER_BITS 8
00369 #endif
00370 #else
00371 #define CVD_STATE_TIMER_BITS 7
00372 #endif
00373 #else
00374 #define CVD_STATE_TIMER_BITS 6
00375 #endif
00376 #else
00377 #define CVD_STATE_TIMER_BITS 5
00378 #endif
00379 #else
00380 #define CVD_STATE_TIMER_BITS 4
00381 #endif
00382 #else
00383 #define CVD_STATE_TIMER_BITS 3
00384 #endif
00385 #else
00386 #define CVD_STATE_TIMER_BITS 2
00387 #endif
00388 #else
00389 #define CVD_STATE_TIMER_BITS 1
00390 #endif
00391 #else
00392 #define CVD_STATE_TIMER_BITS 0
00393 #endif
00394 #if (CVD_STATE_TIMER_BITS > 8)
00395 #define MTOUCH_STATE_TIMER() uint16_t timer
00396 #else
00397 #define MTOUCH_STATE_TIMER() __paste(unsigned timer :,CVD_STATE_TIMER_BITS)
00398 #endif
00399
00400 #if !defined(MTOUCH_DEBOUNCE_RELEASE)
00401 #define MTOUCH_DEBOUNCE_RELEASE 0
00402 #else
00403 #if MTOUCH_DEBOUNCE_RELEASE > 65535
00404 #warning MTOUCH_DEBOUNCE_RELEASE exceeds the maximum limit of 65535. Setting to '65535'.
00405 #undef MTOUCH_DEBOUNCE_RELEASE
00406 #define MTOUCH_DEBOUNCE_RELEASE 65535
00407 #endif
00408 #if MTOUCH_DEBOUNCE_RELEASE < 0
00409 #warning MTOUCH_DEBOUNCE_RELEASE must be at least '0'. Setting to '0'.
00410 #undef MTOUCH_DEBOUNCE_RELEASE
00411 #define MTOUCH_DEBOUNCE_RELEASE 0
00412 #endif
00413 #endif
00414 #if !defined(MTOUCH_DEBOUNCE_PRESS)
00415 #define MTOUCH_DEBOUNCE_PRESS 0
00416 #else
00417 #if MTOUCH_DEBOUNCE_PRESS > 65535
00418 #warning MTOUCH_DEBOUNCE_PRESS exceeds the maximum limit of 65535. Setting to '65535'.
00419 #undef MTOUCH_DEBOUNCE_PRESS
00420 #define MTOUCH_DEBOUNCE_PRESS 65535
00421 #endif
00422 #if MTOUCH_DEBOUNCE_PRESS < 0
00423 #warning MTOUCH_DEBOUNCE_PRESS must be at least '0'. Setting to '0'.
00424 #undef MTOUCH_DEBOUNCE_PRESS
00425 #define MTOUCH_DEBOUNCE_PRESS 0
00426 #endif
00427 #endif
00428 #if MTOUCH_DEBOUNCE_PRESS > MTOUCH_DEBOUNCE_RELEASE
00429 #define CVD_DEBOUNCE_MAX MTOUCH_DEBOUNCE_PRESS
00430 #else
00431 #define CVD_DEBOUNCE_MAX MTOUCH_DEBOUNCE_RELEASE
00432 #endif
00433 #if CVD_DEBOUNCE_MAX > 0
00434 #if CVD_DEBOUNCE_MAX > 1
00435 #if CVD_DEBOUNCE_MAX > 3
00436 #if CVD_DEBOUNCE_MAX > 7
00437 #if CVD_DEBOUNCE_MAX > 15
00438 #if CVD_DEBOUNCE_MAX > 31
00439 #if CVD_DEBOUNCE_MAX > 63
00440 #if CVD_DEBOUNCE_MAX > 127
00441 #if CVD_DEBOUNCE_MAX > 255
00442 #if CVD_DEBOUNCE_MAX > 511
00443 #if CVD_DEBOUNCE_MAX > 1023
00444 #if CVD_DEBOUNCE_MAX > 2047
00445 #if CVD_DEBOUNCE_MAX > 4096
00446 #if CVD_DEBOUNCE_MAX > 8192
00447 #if CVD_DEBOUNCE_MAX > 16384
00448 #if CVD_DEBOUNCE_MAX > 32768
00449 #define CVD_STATE_DEBOUNCE_BITS 16
00450 #else
00451 #define CVD_STATE_DEBOUNCE_BITS 15
00452 #endif
00453 #else
00454 #define CVD_STATE_DEBOUNCE_BITS 14
00455 #endif
00456 #else
00457 #define CVD_STATE_DEBOUNCE_BITS 13
00458 #endif
00459 #else
00460 #define CVD_STATE_DEBOUNCE_BITS 12
00461 #endif
00462 #else
00463 #define CVD_STATE_DEBOUNCE_BITS 11
00464 #endif
00465 #else
00466 #define CVD_STATE_DEBOUNCE_BITS 10
00467 #endif
00468 #else
00469 #define CVD_STATE_DEBOUNCE_BITS 9
00470 #endif
00471 #else
00472 #define CVD_STATE_DEBOUNCE_BITS 8
00473 #endif
00474 #else
00475 #define CVD_STATE_DEBOUNCE_BITS 7
00476 #endif
00477 #else
00478 #define CVD_STATE_DEBOUNCE_BITS 6
00479 #endif
00480 #else
00481 #define CVD_STATE_DEBOUNCE_BITS 5
00482 #endif
00483 #else
00484 #define CVD_STATE_DEBOUNCE_BITS 4
00485 #endif
00486 #else
00487 #define CVD_STATE_DEBOUNCE_BITS 3
00488 #endif
00489 #else
00490 #define CVD_STATE_DEBOUNCE_BITS 2
00491 #endif
00492 #else
00493 #define CVD_STATE_DEBOUNCE_BITS 1
00494 #endif
00495 #else
00496 #define CVD_STATE_DEBOUNCE_BITS 0
00497 #endif
00498 #if (CVD_STATE_DEBOUNCE_BITS > 8)
00499 #define MTOUCH_STATE_DEBOUNCE() uint16_t debounce
00500 #elif CVD_STATE_DEBOUNCE_BITS != 0
00501 #define MTOUCH_STATE_DEBOUNCE() __paste(unsigned debounce :,CVD_STATE_DEBOUNCE_BITS)
00502 #else
00503 #define MTOUCH_DEBOUNCE_IS_ZERO
00504 #endif
00505
00506 #if !defined(MTOUCH_SAMPLES_PER_SCAN)
00507 #warning MTOUCH_SAMPLES_PER_SCAN must be defined in the configuration file. Defaulting to 20ms timing.
00508 #define MTOUCH_SAMPLES_PER_SCAN CVD_20ms_Timing
00509 #endif
00510 #if !defined(MTOUCH_SAMPLES_PER_SCAN)
00511 #warning MTOUCH_SAMPLES_PER_SCAN must be defined in the configuration file. Defaulting to 30 samples.
00512 #define MTOUCH_SAMPLES_PER_SCAN 30
00513 #endif
00514 #if MTOUCH_SAMPLES_PER_SCAN > 0
00515 #if MTOUCH_SAMPLES_PER_SCAN > 1
00516 #if MTOUCH_SAMPLES_PER_SCAN > 3
00517 #if MTOUCH_SAMPLES_PER_SCAN > 7
00518 #if MTOUCH_SAMPLES_PER_SCAN > 15
00519 #if MTOUCH_SAMPLES_PER_SCAN > 31
00520 #if MTOUCH_SAMPLES_PER_SCAN > 63
00521 #if MTOUCH_SAMPLES_PER_SCAN > 127
00522 #if MTOUCH_SAMPLES_PER_SCAN > 255
00523 #if MTOUCH_SAMPLES_PER_SCAN > 511
00524 #if MTOUCH_SAMPLES_PER_SCAN > 1023
00525 #if MTOUCH_SAMPLES_PER_SCAN > 2047
00526 #if MTOUCH_SAMPLES_PER_SCAN > 4096
00527 #if MTOUCH_SAMPLES_PER_SCAN > 8192
00528 #if MTOUCH_SAMPLES_PER_SCAN > 16384
00529 #if MTOUCH_SAMPLES_PER_SCAN > 32768
00530 #define CVD_STATE_SPS_BITS 16
00531 #else
00532 #define CVD_STATE_SPS_BITS 15
00533 #endif
00534 #else
00535 #define CVD_STATE_SPS_BITS 14
00536 #endif
00537 #else
00538 #define CVD_STATE_SPS_BITS 13
00539 #endif
00540 #else
00541 #define CVD_STATE_SPS_BITS 12
00542 #endif
00543 #else
00544 #define CVD_STATE_SPS_BITS 11
00545 #endif
00546 #else
00547 #define CVD_STATE_SPS_BITS 10
00548 #endif
00549 #else
00550 #define CVD_STATE_SPS_BITS 9
00551 #endif
00552 #else
00553 #define CVD_STATE_SPS_BITS 8
00554 #endif
00555 #else
00556 #define CVD_STATE_SPS_BITS 7
00557 #endif
00558 #else
00559 #define CVD_STATE_SPS_BITS 6
00560 #endif
00561 #else
00562 #define CVD_STATE_SPS_BITS 5
00563 #endif
00564 #else
00565 #define CVD_STATE_SPS_BITS 4
00566 #endif
00567 #else
00568 #define CVD_STATE_SPS_BITS 3
00569 #endif
00570 #else
00571 #define CVD_STATE_SPS_BITS 2
00572 #endif
00573 #else
00574 #define CVD_STATE_SPS_BITS 1
00575 #endif
00576 #else
00577 #define CVD_STATE_SPS_BITS 0
00578 #endif
00579 #if (CVD_STATE_SPS_BITS > 8)
00580 #define MTOUCH_STATE_SAMPLE_COUNTER() uint16_t sampleCounter
00581 #else
00582 #define MTOUCH_STATE_SAMPLE_COUNTER() __paste(unsigned sampleCounter :,CVD_STATE_SPS_BITS)
00583 #endif
00584
00585 #if (defined(MTOUCH_JITTER_BITS) && (MTOUCH_JITTER_BITS != 0)) || defined(MTOUCH_EEPROM_ENABLED)
00586 #define MTOUCH_JITTER_ENABLE
00587 #else
00588 #if defined(MTOUCH_JITTER_ENABLE)
00589 #undef MTOUCH_JITTER_ENABLE
00590 #endif
00591 #endif
00592
00593 #if defined(MTOUCH_JITTER_ENABLE)
00594 #define MTOUCH_JITTER_MASK0 0x00
00595 #define MTOUCH_JITTER_MASK1 0x01
00596 #define MTOUCH_JITTER_MASK2 0x03
00597 #define MTOUCH_JITTER_MASK3 0x07
00598 #define MTOUCH_JITTER_MASK4 0x0F
00599 #define MTOUCH_JITTER_MASK5 0x1F
00600 #define MTOUCH_JITTER_MASK6 0x3F
00601 #define MTOUCH_JITTER_MASK7 0x7F
00602 #define MTOUCH_JITTER_MASK8 0xFF
00603
00604 #define MTOUCH_JITTER_MASK __paste4(MTOUCH_JITTER_MASK,MTOUCH_JITTER_BITS)
00605 #define MTOUCH_JITTER_MASK_ARRAY { MTOUCH_JITTER_MASK0, MTOUCH_JITTER_MASK1, MTOUCH_JITTER_MASK2, MTOUCH_JITTER_MASK3, MTOUCH_JITTER_MASK4, MTOUCH_JITTER_MASK5, MTOUCH_JITTER_MASK6, MTOUCH_JITTER_MASK7, MTOUCH_JITTER_MASK8 }
00606 #endif
00607
00608 #if !defined(_XTAL_FREQ)
00609 #error _XTAL_FREQ is not defined in the configuration file. Framework must be told how fast Fosc is running.
00610 #endif
00611 #if !defined(MTOUCH_SENSOR0)
00612 #error There is no MTOUCH_SENSOR0 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00613 #endif
00614 #if !defined(MTOUCH_NEGATIVE_CAPACITANCE)
00615 #define MTOUCH_NEGATIVE_CAPACITANCE 0
00616 #endif
00617 #if (MTOUCH_NEGATIVE_CAPACITANCE != 0) && (MTOUCH_NEGATIVE_CAPACITANCE != 1) && (MTOUCH_NEGATIVE_CAPACITANCE != 2)
00618 #warning MTOUCH_NEGATIVE_CAPACITANCE is set to an invalid value. Defaulting to 0.
00619 #undef MTOUCH_NEGATIVE_CAPACITANCE
00620 #define MTOUCH_NEGATIVE_CAPACITANCE 0
00621 #endif
00622 #if MTOUCH_BASELINE_RATE > 0
00623 #if MTOUCH_BASELINE_RATE > 1
00624 #if MTOUCH_BASELINE_RATE > 3
00625 #if MTOUCH_BASELINE_RATE > 7
00626 #if MTOUCH_BASELINE_RATE > 15
00627 #if MTOUCH_BASELINE_RATE > 31
00628 #if MTOUCH_BASELINE_RATE > 63
00629 #if MTOUCH_BASELINE_RATE > 127
00630 #if MTOUCH_BASELINE_RATE > 255
00631 #if MTOUCH_BASELINE_RATE > 511
00632 #if MTOUCH_BASELINE_RATE > 1023
00633 #if MTOUCH_BASELINE_RATE > 2047
00634 #if MTOUCH_BASELINE_RATE > 4096
00635 #if MTOUCH_BASELINE_RATE > 8192
00636 #if MTOUCH_BASELINE_RATE > 16384
00637 #if MTOUCH_BASELINE_RATE > 32768
00638 #define CVD_STATE_BLCOUNT_BITS 16
00639 #else
00640 #define CVD_STATE_BLCOUNT_BITS 15
00641 #endif
00642 #else
00643 #define CVD_STATE_BLCOUNT_BITS 14
00644 #endif
00645 #else
00646 #define CVD_STATE_BLCOUNT_BITS 13
00647 #endif
00648 #else
00649 #define CVD_STATE_BLCOUNT_BITS 12
00650 #endif
00651 #else
00652 #define CVD_STATE_BLCOUNT_BITS 11
00653 #endif
00654 #else
00655 #define CVD_STATE_BLCOUNT_BITS 10
00656 #endif
00657 #else
00658 #define CVD_STATE_BLCOUNT_BITS 9
00659 #endif
00660 #else
00661 #define CVD_STATE_BLCOUNT_BITS 8
00662 #endif
00663 #else
00664 #define CVD_STATE_BLCOUNT_BITS 7
00665 #endif
00666 #else
00667 #define CVD_STATE_BLCOUNT_BITS 6
00668 #endif
00669 #else
00670 #define CVD_STATE_BLCOUNT_BITS 5
00671 #endif
00672 #else
00673 #define CVD_STATE_BLCOUNT_BITS 4
00674 #endif
00675 #else
00676 #define CVD_STATE_BLCOUNT_BITS 3
00677 #endif
00678 #else
00679 #define CVD_STATE_BLCOUNT_BITS 2
00680 #endif
00681 #else
00682 #define CVD_STATE_BLCOUNT_BITS 1
00683 #endif
00684 #else
00685 #define CVD_STATE_BLCOUNT_BITS 0
00686 #endif
00687 #if (CVD_STATE_BLCOUNT_BITS > 8)
00688 #define MTOUCH_STATE_BASELINE_COUNT() uint16_t baselineCount
00689 #define MTOUCH_BLCOUNT_16BITS_REQUIRED
00690 #else
00691 #define MTOUCH_STATE_BASELINE_COUNT() __paste(unsigned baselineCount :,CVD_STATE_BLCOUNT_BITS)
00692 #endif
00693
00694
00695 #define MTOUCH_EXIT_SENSOR0() EXIT_LAST_SENSOR(0)
00696 #if MTOUCH_NUMBER_SENSORS > 1
00697 #if !defined(MTOUCH_SENSOR1)
00698 #error There is no MTOUCH_SENSOR1 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00699 #endif
00700 #undef MTOUCH_EXIT_SENSOR0()
00701 #define MTOUCH_EXIT_SENSOR0() EXIT_SENSOR(mTouch_currentSensor)
00702 #define MTOUCH_EXIT_SENSOR1() EXIT_LAST_SENSOR(mTouch_currentSensor)
00703 #endif
00704 #if MTOUCH_NUMBER_SENSORS > 2
00705 #if !defined(MTOUCH_SENSOR2)
00706 #error There is no MTOUCH_SENSOR2 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00707 #endif
00708 #undef MTOUCH_EXIT_SENSOR1()
00709 #define MTOUCH_EXIT_SENSOR1() EXIT_SENSOR(mTouch_currentSensor)
00710 #define MTOUCH_EXIT_SENSOR2() EXIT_LAST_SENSOR(mTouch_currentSensor)
00711 #endif
00712 #if MTOUCH_NUMBER_SENSORS > 3
00713 #if !defined(MTOUCH_SENSOR3)
00714 #error There is no MTOUCH_SENSOR3 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00715 #endif
00716 #undef MTOUCH_EXIT_SENSOR2()
00717 #define MTOUCH_EXIT_SENSOR2() EXIT_SENSOR(mTouch_currentSensor)
00718 #define MTOUCH_EXIT_SENSOR3() EXIT_LAST_SENSOR(mTouch_currentSensor)
00719 #endif
00720 #if MTOUCH_NUMBER_SENSORS > 4
00721 #if !defined(MTOUCH_SENSOR4)
00722 #error There is no MTOUCH_SENSOR4 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00723 #endif
00724 #undef MTOUCH_EXIT_SENSOR3()
00725 #define MTOUCH_EXIT_SENSOR3() EXIT_SENSOR(mTouch_currentSensor)
00726 #define MTOUCH_EXIT_SENSOR4() EXIT_LAST_SENSOR(mTouch_currentSensor)
00727 #endif
00728 #if MTOUCH_NUMBER_SENSORS > 5
00729 #if !defined(MTOUCH_SENSOR5)
00730 #error There is no MTOUCH_SENSOR5 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00731 #endif
00732 #undef MTOUCH_EXIT_SENSOR4()
00733 #define MTOUCH_EXIT_SENSOR4() EXIT_SENSOR(mTouch_currentSensor)
00734 #define MTOUCH_EXIT_SENSOR5() EXIT_LAST_SENSOR(mTouch_currentSensor)
00735 #endif
00736 #if MTOUCH_NUMBER_SENSORS > 6
00737 #if !defined(MTOUCH_SENSOR6)
00738 #error There is no MTOUCH_SENSOR6 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00739 #endif
00740 #undef MTOUCH_EXIT_SENSOR5()
00741 #define MTOUCH_EXIT_SENSOR5() EXIT_SENSOR(mTouch_currentSensor)
00742 #define MTOUCH_EXIT_SENSOR6() EXIT_LAST_SENSOR(mTouch_currentSensor)
00743 #endif
00744 #if MTOUCH_NUMBER_SENSORS > 7
00745 #if !defined(MTOUCH_SENSOR7)
00746 #error There is no MTOUCH_SENSOR7 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00747 #endif
00748 #undef MTOUCH_EXIT_SENSOR6()
00749 #define MTOUCH_EXIT_SENSOR6() EXIT_SENSOR(mTouch_currentSensor)
00750 #define MTOUCH_EXIT_SENSOR7() EXIT_LAST_SENSOR(mTouch_currentSensor)
00751 #endif
00752 #if MTOUCH_NUMBER_SENSORS > 8
00753 #if !defined(MTOUCH_SENSOR8)
00754 #error There is no MTOUCH_SENSOR8 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00755 #endif
00756 #undef MTOUCH_EXIT_SENSOR7()
00757 #define MTOUCH_EXIT_SENSOR7() EXIT_SENSOR(mTouch_currentSensor)
00758 #define MTOUCH_EXIT_SENSOR8() EXIT_LAST_SENSOR(mTouch_currentSensor)
00759 #endif
00760 #if MTOUCH_NUMBER_SENSORS > 9
00761 #if !defined(MTOUCH_SENSOR9)
00762 #error There is no MTOUCH_SENSOR9 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00763 #endif
00764 #undef MTOUCH_EXIT_SENSOR8()
00765 #define MTOUCH_EXIT_SENSOR8() EXIT_SENSOR(mTouch_currentSensor)
00766 #define MTOUCH_EXIT_SENSOR9() EXIT_LAST_SENSOR(mTouch_currentSensor)
00767 #endif
00768 #if MTOUCH_NUMBER_SENSORS > 10
00769 #if !defined(MTOUCH_SENSOR10)
00770 #error There is no MTOUCH_SENSOR10 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00771 #endif
00772 #undef MTOUCH_EXIT_SENSOR9()
00773 #define MTOUCH_EXIT_SENSOR9() EXIT_SENSOR(mTouch_currentSensor)
00774 #define MTOUCH_EXIT_SENSOR10() EXIT_LAST_SENSOR(mTouch_currentSensor)
00775 #endif
00776 #if MTOUCH_NUMBER_SENSORS > 11
00777 #if !defined(MTOUCH_SENSOR11)
00778 #error There is no MTOUCH_SENSOR11 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00779 #endif
00780 #undef MTOUCH_EXIT_SENSOR10()
00781 #define MTOUCH_EXIT_SENSOR10() EXIT_SENSOR(mTouch_currentSensor)
00782 #define MTOUCH_EXIT_SENSOR11() EXIT_LAST_SENSOR(mTouch_currentSensor)
00783 #endif
00784 #if MTOUCH_NUMBER_SENSORS > 12
00785 #if !defined(MTOUCH_SENSOR12)
00786 #error There is no MTOUCH_SENSOR12 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00787 #endif
00788 #undef MTOUCH_EXIT_SENSOR11()
00789 #define MTOUCH_EXIT_SENSOR11() EXIT_SENSOR(mTouch_currentSensor)
00790 #define MTOUCH_EXIT_SENSOR12() EXIT_LAST_SENSOR(mTouch_currentSensor)
00791 #endif
00792 #if MTOUCH_NUMBER_SENSORS > 13
00793 #if !defined(MTOUCH_SENSOR13)
00794 #error There is no MTOUCH_SENSOR13 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00795 #endif
00796 #undef MTOUCH_EXIT_SENSOR12()
00797 #define MTOUCH_EXIT_SENSOR12() EXIT_SENSOR(mTouch_currentSensor)
00798 #define MTOUCH_EXIT_SENSOR13() EXIT_LAST_SENSOR(mTouch_currentSensor)
00799 #endif
00800 #if MTOUCH_NUMBER_SENSORS > 14
00801 #if !defined(MTOUCH_SENSOR14)
00802 #error There is no MTOUCH_SENSOR14 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00803 #endif
00804 #undef MTOUCH_EXIT_SENSOR13()
00805 #define MTOUCH_EXIT_SENSOR13() EXIT_SENSOR(mTouch_currentSensor)
00806 #define MTOUCH_EXIT_SENSOR14() EXIT_LAST_SENSOR(mTouch_currentSensor)
00807 #endif
00808 #if MTOUCH_NUMBER_SENSORS > 15
00809 #if !defined(MTOUCH_SENSOR15)
00810 #error There is no MTOUCH_SENSOR15 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00811 #endif
00812 #undef MTOUCH_EXIT_SENSOR14()
00813 #define MTOUCH_EXIT_SENSOR14() EXIT_SENSOR(mTouch_currentSensor)
00814 #define MTOUCH_EXIT_SENSOR15() EXIT_LAST_SENSOR(mTouch_currentSensor)
00815 #endif
00816 #if MTOUCH_NUMBER_SENSORS > 16
00817 #if !defined(MTOUCH_SENSOR16)
00818 #error There is no MTOUCH_SENSOR16 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00819 #endif
00820 #undef MTOUCH_EXIT_SENSOR15()
00821 #define MTOUCH_EXIT_SENSOR15() EXIT_SENSOR(mTouch_currentSensor)
00822 #define MTOUCH_EXIT_SENSOR16() EXIT_LAST_SENSOR(mTouch_currentSensor)
00823 #endif
00824 #if MTOUCH_NUMBER_SENSORS > 17
00825 #if !defined(MTOUCH_SENSOR17)
00826 #error There is no MTOUCH_SENSOR17 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00827 #endif
00828 #undef MTOUCH_EXIT_SENSOR16()
00829 #define MTOUCH_EXIT_SENSOR16() EXIT_SENSOR(mTouch_currentSensor)
00830 #define MTOUCH_EXIT_SENSOR17() EXIT_LAST_SENSOR(mTouch_currentSensor)
00831 #endif
00832 #if MTOUCH_NUMBER_SENSORS > 18
00833 #if !defined(MTOUCH_SENSOR18)
00834 #error There is no MTOUCH_SENSOR18 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00835 #endif
00836 #undef MTOUCH_EXIT_SENSOR17()
00837 #define MTOUCH_EXIT_SENSOR17() EXIT_SENSOR(mTouch_currentSensor)
00838 #define MTOUCH_EXIT_SENSOR18() EXIT_LAST_SENSOR(mTouch_currentSensor)
00839 #endif
00840 #if MTOUCH_NUMBER_SENSORS > 19
00841 #if !defined(MTOUCH_SENSOR19)
00842 #error There is no MTOUCH_SENSOR19 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00843 #endif
00844 #undef MTOUCH_EXIT_SENSOR18()
00845 #define MTOUCH_EXIT_SENSOR18() EXIT_SENSOR(mTouch_currentSensor)
00846 #define MTOUCH_EXIT_SENSOR19() EXIT_LAST_SENSOR(mTouch_currentSensor)
00847 #endif
00848 #if MTOUCH_NUMBER_SENSORS > 20
00849 #if !defined(MTOUCH_SENSOR20)
00850 #error There is no MTOUCH_SENSOR20 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00851 #endif
00852 #undef MTOUCH_EXIT_SENSOR19()
00853 #define MTOUCH_EXIT_SENSOR19() EXIT_SENSOR(mTouch_currentSensor)
00854 #define MTOUCH_EXIT_SENSOR20() EXIT_LAST_SENSOR(mTouch_currentSensor)
00855 #endif
00856 #if MTOUCH_NUMBER_SENSORS > 21
00857 #if !defined(MTOUCH_SENSOR21)
00858 #error There is no MTOUCH_SENSOR21 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00859 #endif
00860 #undef MTOUCH_EXIT_SENSOR20()
00861 #define MTOUCH_EXIT_SENSOR20() EXIT_SENSOR(mTouch_currentSensor)
00862 #define MTOUCH_EXIT_SENSOR21() EXIT_LAST_SENSOR(mTouch_currentSensor)
00863 #endif
00864 #if MTOUCH_NUMBER_SENSORS > 22
00865 #if !defined(MTOUCH_SENSOR22)
00866 #error There is no MTOUCH_SENSOR22 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00867 #endif
00868 #undef MTOUCH_EXIT_SENSOR21()
00869 #define MTOUCH_EXIT_SENSOR21() EXIT_SENSOR(mTouch_currentSensor)
00870 #define MTOUCH_EXIT_SENSOR22() EXIT_LAST_SENSOR(mTouch_currentSensor)
00871 #endif
00872 #if MTOUCH_NUMBER_SENSORS > 23
00873 #if !defined(MTOUCH_SENSOR23)
00874 #error There is no MTOUCH_SENSOR23 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00875 #endif
00876 #undef MTOUCH_EXIT_SENSOR22()
00877 #define MTOUCH_EXIT_SENSOR22() EXIT_SENSOR(mTouch_currentSensor)
00878 #define MTOUCH_EXIT_SENSOR23() EXIT_LAST_SENSOR(mTouch_currentSensor)
00879 #endif
00880 #if MTOUCH_NUMBER_SENSORS > 24
00881 #if !defined(MTOUCH_SENSOR24)
00882 #error There is no MTOUCH_SENSOR24 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00883 #endif
00884 #undef MTOUCH_EXIT_SENSOR23()
00885 #define MTOUCH_EXIT_SENSOR23() EXIT_SENSOR(mTouch_currentSensor)
00886 #define MTOUCH_EXIT_SENSOR24() EXIT_LAST_SENSOR(mTouch_currentSensor)
00887 #endif
00888 #if MTOUCH_NUMBER_SENSORS > 25
00889 #if !defined(MTOUCH_SENSOR25)
00890 #error There is no MTOUCH_SENSOR25 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00891 #endif
00892 #undef MTOUCH_EXIT_SENSOR24()
00893 #define MTOUCH_EXIT_SENSOR24() EXIT_SENSOR(mTouch_currentSensor)
00894 #define MTOUCH_EXIT_SENSOR25() EXIT_LAST_SENSOR(mTouch_currentSensor)
00895 #endif
00896 #if MTOUCH_NUMBER_SENSORS > 26
00897 #if !defined(MTOUCH_SENSOR26)
00898 #error There is no MTOUCH_SENSOR26 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00899 #endif
00900 #undef MTOUCH_EXIT_SENSOR25()
00901 #define MTOUCH_EXIT_SENSOR25() EXIT_SENSOR(mTouch_currentSensor)
00902 #define MTOUCH_EXIT_SENSOR26() EXIT_LAST_SENSOR(mTouch_currentSensor)
00903 #endif
00904 #if MTOUCH_NUMBER_SENSORS > 27
00905 #if !defined(MTOUCH_SENSOR27)
00906 #error There is no MTOUCH_SENSOR27 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00907 #endif
00908 #undef MTOUCH_EXIT_SENSOR26()
00909 #define MTOUCH_EXIT_SENSOR26() EXIT_SENSOR(mTouch_currentSensor)
00910 #define MTOUCH_EXIT_SENSOR27() EXIT_LAST_SENSOR(mTouch_currentSensor)
00911 #endif
00912 #if MTOUCH_NUMBER_SENSORS > 28
00913 #if !defined(MTOUCH_SENSOR28)
00914 #error There is no MTOUCH_SENSOR28 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00915 #endif
00916 #undef MTOUCH_EXIT_SENSOR27()
00917 #define MTOUCH_EXIT_SENSOR27() EXIT_SENSOR(mTouch_currentSensor)
00918 #define MTOUCH_EXIT_SENSOR28() EXIT_LAST_SENSOR(mTouch_currentSensor)
00919 #endif
00920 #if MTOUCH_NUMBER_SENSORS > 29
00921 #if !defined(MTOUCH_SENSOR29)
00922 #error There is no MTOUCH_SENSOR29 definition in the configuration file. Framework unable to associate the sensor with an analog pin.
00923 #endif
00924 #undef MTOUCH_EXIT_SENSOR28()
00925 #define MTOUCH_EXIT_SENSOR28() EXIT_SENSOR(mTouch_currentSensor)
00926 #define MTOUCH_EXIT_SENSOR29() EXIT_LAST_SENSOR(mTouch_currentSensor)
00927 #endif
00928 #if MTOUCH_NUMBER_SENSORS > 30
00929 #error This version of the mTouch CVD Framework does not support more than 30 sensors at this time.
00930 #endif
00931
00932 #if !defined(THRESHOLD_PRESS_SENSOR0)
00933 #if MTOUCH_NUMBER_SENSORS > 0
00934 #error Required definition, THRESHOLD_PRESS_SENSOR0, is not defined in the configuration file.
00935 #else
00936 #define THRESHOLD_PRESS_SENSOR0 0
00937 #endif
00938 #endif
00939 #if !defined(THRESHOLD_PRESS_SENSOR1)
00940 #if MTOUCH_NUMBER_SENSORS > 1
00941 #error Required definition, THRESHOLD_PRESS_SENSOR1, is not defined in the configuration file.
00942 #else
00943 #define THRESHOLD_PRESS_SENSOR1 0
00944 #endif
00945 #endif
00946 #if !defined(THRESHOLD_PRESS_SENSOR2)
00947 #if MTOUCH_NUMBER_SENSORS > 2
00948 #error Required definition, THRESHOLD_PRESS_SENSOR2, is not defined in the configuration file.
00949 #else
00950 #define THRESHOLD_PRESS_SENSOR2 0
00951 #endif
00952 #endif
00953 #if !defined(THRESHOLD_PRESS_SENSOR3)
00954 #if MTOUCH_NUMBER_SENSORS > 3
00955 #error Required definition, THRESHOLD_PRESS_SENSOR3, is not defined in the configuration file.
00956 #else
00957 #define THRESHOLD_PRESS_SENSOR3 0
00958 #endif
00959 #endif
00960 #if !defined(THRESHOLD_PRESS_SENSOR4)
00961 #if MTOUCH_NUMBER_SENSORS > 4
00962 #error Required definition, THRESHOLD_PRESS_SENSOR4, is not defined in the configuration file.
00963 #else
00964 #define THRESHOLD_PRESS_SENSOR4 0
00965 #endif
00966 #endif
00967 #if !defined(THRESHOLD_PRESS_SENSOR5)
00968 #if MTOUCH_NUMBER_SENSORS > 5
00969 #error Required definition, THRESHOLD_PRESS_SENSOR5, is not defined in the configuration file.
00970 #else
00971 #define THRESHOLD_PRESS_SENSOR5 0
00972 #endif
00973 #endif
00974 #if !defined(THRESHOLD_PRESS_SENSOR6)
00975 #if MTOUCH_NUMBER_SENSORS > 6
00976 #error Required definition, THRESHOLD_PRESS_SENSOR6, is not defined in the configuration file.
00977 #else
00978 #define THRESHOLD_PRESS_SENSOR6 0
00979 #endif
00980 #endif
00981 #if !defined(THRESHOLD_PRESS_SENSOR7)
00982 #if MTOUCH_NUMBER_SENSORS > 7
00983 #error Required definition, THRESHOLD_PRESS_SENSOR7, is not defined in the configuration file.
00984 #else
00985 #define THRESHOLD_PRESS_SENSOR7 0
00986 #endif
00987 #endif
00988 #if !defined(THRESHOLD_PRESS_SENSOR8)
00989 #if MTOUCH_NUMBER_SENSORS > 8
00990 #error Required definition, THRESHOLD_PRESS_SENSOR8, is not defined in the configuration file.
00991 #else
00992 #define THRESHOLD_PRESS_SENSOR8 0
00993 #endif
00994 #endif
00995 #if !defined(THRESHOLD_PRESS_SENSOR9)
00996 #if MTOUCH_NUMBER_SENSORS > 9
00997 #error Required definition, THRESHOLD_PRESS_SENSOR9, is not defined in the configuration file.
00998 #else
00999 #define THRESHOLD_PRESS_SENSOR9 0
01000 #endif
01001 #endif
01002 #if !defined(THRESHOLD_PRESS_SENSOR10)
01003 #if MTOUCH_NUMBER_SENSORS > 10
01004 #error Required definition, THRESHOLD_PRESS_SENSOR10, is not defined in the configuration file.
01005 #else
01006 #define THRESHOLD_PRESS_SENSOR10 0
01007 #endif
01008 #endif
01009 #if !defined(THRESHOLD_PRESS_SENSOR11)
01010 #if MTOUCH_NUMBER_SENSORS > 11
01011 #error Required definition, THRESHOLD_PRESS_SENSOR11, is not defined in the configuration file.
01012 #else
01013 #define THRESHOLD_PRESS_SENSOR11 0
01014 #endif
01015 #endif
01016 #if !defined(THRESHOLD_PRESS_SENSOR12)
01017 #if MTOUCH_NUMBER_SENSORS > 12
01018 #error Required definition, THRESHOLD_PRESS_SENSOR12, is not defined in the configuration file.
01019 #else
01020 #define THRESHOLD_PRESS_SENSOR12 0
01021 #endif
01022 #endif
01023 #if !defined(THRESHOLD_PRESS_SENSOR13)
01024 #if MTOUCH_NUMBER_SENSORS > 13
01025 #error Required definition, THRESHOLD_PRESS_SENSOR13, is not defined in the configuration file.
01026 #else
01027 #define THRESHOLD_PRESS_SENSOR13 0
01028 #endif
01029 #endif
01030 #if !defined(THRESHOLD_PRESS_SENSOR14)
01031 #if MTOUCH_NUMBER_SENSORS > 14
01032 #error Required definition, THRESHOLD_PRESS_SENSOR14, is not defined in the configuration file.
01033 #else
01034 #define THRESHOLD_PRESS_SENSOR14 0
01035 #endif
01036 #endif
01037 #if !defined(THRESHOLD_PRESS_SENSOR15)
01038 #if MTOUCH_NUMBER_SENSORS > 15
01039 #error Required definition, THRESHOLD_PRESS_SENSOR15, is not defined in the configuration file.
01040 #else
01041 #define THRESHOLD_PRESS_SENSOR15 0
01042 #endif
01043 #endif
01044 #if !defined(THRESHOLD_PRESS_SENSOR16)
01045 #if MTOUCH_NUMBER_SENSORS > 16
01046 #error Required definition, THRESHOLD_PRESS_SENSOR16, is not defined in the configuration file.
01047 #else
01048 #define THRESHOLD_PRESS_SENSOR16 0
01049 #endif
01050 #endif
01051 #if !defined(THRESHOLD_PRESS_SENSOR17)
01052 #if MTOUCH_NUMBER_SENSORS > 17
01053 #error Required definition, THRESHOLD_PRESS_SENSOR17, is not defined in the configuration file.
01054 #else
01055 #define THRESHOLD_PRESS_SENSOR17 0
01056 #endif
01057 #endif
01058 #if !defined(THRESHOLD_PRESS_SENSOR18)
01059 #if MTOUCH_NUMBER_SENSORS > 18
01060 #error Required definition, THRESHOLD_PRESS_SENSOR18, is not defined in the configuration file.
01061 #else
01062 #define THRESHOLD_PRESS_SENSOR18 0
01063 #endif
01064 #endif
01065 #if !defined(THRESHOLD_PRESS_SENSOR19)
01066 #if MTOUCH_NUMBER_SENSORS > 19
01067 #error Required definition, THRESHOLD_PRESS_SENSOR19, is not defined in the configuration file.
01068 #else
01069 #define THRESHOLD_PRESS_SENSOR19 0
01070 #endif
01071 #endif
01072 #if !defined(THRESHOLD_PRESS_SENSOR20)
01073 #if MTOUCH_NUMBER_SENSORS > 20
01074 #error Required definition, THRESHOLD_PRESS_SENSOR20, is not defined in the configuration file.
01075 #else
01076 #define THRESHOLD_PRESS_SENSOR20 0
01077 #endif
01078 #endif
01079 #if !defined(THRESHOLD_PRESS_SENSOR21)
01080 #if MTOUCH_NUMBER_SENSORS > 21
01081 #error Required definition, THRESHOLD_PRESS_SENSOR21, is not defined in the configuration file.
01082 #else
01083 #define THRESHOLD_PRESS_SENSOR21 0
01084 #endif
01085 #endif
01086 #if !defined(THRESHOLD_PRESS_SENSOR22)
01087 #if MTOUCH_NUMBER_SENSORS > 22
01088 #error Required definition, THRESHOLD_PRESS_SENSOR22, is not defined in the configuration file.
01089 #else
01090 #define THRESHOLD_PRESS_SENSOR22 0
01091 #endif
01092 #endif
01093 #if !defined(THRESHOLD_PRESS_SENSOR23)
01094 #if MTOUCH_NUMBER_SENSORS > 23
01095 #error Required definition, THRESHOLD_PRESS_SENSOR23, is not defined in the configuration file.
01096 #else
01097 #define THRESHOLD_PRESS_SENSOR23 0
01098 #endif
01099 #endif
01100 #if !defined(THRESHOLD_PRESS_SENSOR24)
01101 #if MTOUCH_NUMBER_SENSORS > 24
01102 #error Required definition, THRESHOLD_PRESS_SENSOR24, is not defined in the configuration file.
01103 #else
01104 #define THRESHOLD_PRESS_SENSOR24 0
01105 #endif
01106 #endif
01107 #if !defined(THRESHOLD_PRESS_SENSOR25)
01108 #if MTOUCH_NUMBER_SENSORS > 25
01109 #error Required definition, THRESHOLD_PRESS_SENSOR25, is not defined in the configuration file.
01110 #else
01111 #define THRESHOLD_PRESS_SENSOR25 0
01112 #endif
01113 #endif
01114 #if !defined(THRESHOLD_PRESS_SENSOR26)
01115 #if MTOUCH_NUMBER_SENSORS > 26
01116 #error Required definition, THRESHOLD_PRESS_SENSOR26, is not defined in the configuration file.
01117 #else
01118 #define THRESHOLD_PRESS_SENSOR26 0
01119 #endif
01120 #endif
01121 #if !defined(THRESHOLD_PRESS_SENSOR27)
01122 #if MTOUCH_NUMBER_SENSORS > 27
01123 #error Required definition, THRESHOLD_PRESS_SENSOR27, is not defined in the configuration file.
01124 #else
01125 #define THRESHOLD_PRESS_SENSOR27 0
01126 #endif
01127 #endif
01128 #if !defined(THRESHOLD_PRESS_SENSOR28)
01129 #if MTOUCH_NUMBER_SENSORS > 28
01130 #error Required definition, THRESHOLD_PRESS_SENSOR28, is not defined in the configuration file.
01131 #else
01132 #define THRESHOLD_PRESS_SENSOR28 0
01133 #endif
01134 #endif
01135 #if !defined(THRESHOLD_PRESS_SENSOR29)
01136 #if MTOUCH_NUMBER_SENSORS > 29
01137 #error Required definition, THRESHOLD_PRESS_SENSOR29, is not defined in the configuration file.
01138 #else
01139 #define THRESHOLD_PRESS_SENSOR29 0
01140 #endif
01141 #endif
01142
01143 #define THRESHOLD_RELEASE_SENSOR0 (uint16_t)((float) THRESHOLD_PRESS_SENSOR0 * MTOUCH_RELEASE_THRESH_FACTOR)
01144 #define THRESHOLD_RELEASE_SENSOR1 (uint16_t)((float) THRESHOLD_PRESS_SENSOR1 * MTOUCH_RELEASE_THRESH_FACTOR)
01145 #define THRESHOLD_RELEASE_SENSOR2 (uint16_t)((float) THRESHOLD_PRESS_SENSOR2 * MTOUCH_RELEASE_THRESH_FACTOR)
01146 #define THRESHOLD_RELEASE_SENSOR3 (uint16_t)((float) THRESHOLD_PRESS_SENSOR3 * MTOUCH_RELEASE_THRESH_FACTOR)
01147 #define THRESHOLD_RELEASE_SENSOR4 (uint16_t)((float) THRESHOLD_PRESS_SENSOR4 * MTOUCH_RELEASE_THRESH_FACTOR)
01148 #define THRESHOLD_RELEASE_SENSOR5 (uint16_t)((float) THRESHOLD_PRESS_SENSOR5 * MTOUCH_RELEASE_THRESH_FACTOR)
01149 #define THRESHOLD_RELEASE_SENSOR6 (uint16_t)((float) THRESHOLD_PRESS_SENSOR6 * MTOUCH_RELEASE_THRESH_FACTOR)
01150 #define THRESHOLD_RELEASE_SENSOR7 (uint16_t)((float) THRESHOLD_PRESS_SENSOR7 * MTOUCH_RELEASE_THRESH_FACTOR)
01151 #define THRESHOLD_RELEASE_SENSOR8 (uint16_t)((float) THRESHOLD_PRESS_SENSOR8 * MTOUCH_RELEASE_THRESH_FACTOR)
01152 #define THRESHOLD_RELEASE_SENSOR9 (uint16_t)((float) THRESHOLD_PRESS_SENSOR9 * MTOUCH_RELEASE_THRESH_FACTOR)
01153 #define THRESHOLD_RELEASE_SENSOR10 (uint16_t)((float) THRESHOLD_PRESS_SENSOR10 * MTOUCH_RELEASE_THRESH_FACTOR)
01154 #define THRESHOLD_RELEASE_SENSOR11 (uint16_t)((float) THRESHOLD_PRESS_SENSOR11 * MTOUCH_RELEASE_THRESH_FACTOR)
01155 #define THRESHOLD_RELEASE_SENSOR12 (uint16_t)((float) THRESHOLD_PRESS_SENSOR12 * MTOUCH_RELEASE_THRESH_FACTOR)
01156 #define THRESHOLD_RELEASE_SENSOR13 (uint16_t)((float) THRESHOLD_PRESS_SENSOR13 * MTOUCH_RELEASE_THRESH_FACTOR)
01157 #define THRESHOLD_RELEASE_SENSOR14 (uint16_t)((float) THRESHOLD_PRESS_SENSOR14 * MTOUCH_RELEASE_THRESH_FACTOR)
01158 #define THRESHOLD_RELEASE_SENSOR15 (uint16_t)((float) THRESHOLD_PRESS_SENSOR15 * MTOUCH_RELEASE_THRESH_FACTOR)
01159 #define THRESHOLD_RELEASE_SENSOR16 (uint16_t)((float) THRESHOLD_PRESS_SENSOR16 * MTOUCH_RELEASE_THRESH_FACTOR)
01160 #define THRESHOLD_RELEASE_SENSOR17 (uint16_t)((float) THRESHOLD_PRESS_SENSOR17 * MTOUCH_RELEASE_THRESH_FACTOR)
01161 #define THRESHOLD_RELEASE_SENSOR18 (uint16_t)((float) THRESHOLD_PRESS_SENSOR18 * MTOUCH_RELEASE_THRESH_FACTOR)
01162 #define THRESHOLD_RELEASE_SENSOR19 (uint16_t)((float) THRESHOLD_PRESS_SENSOR19 * MTOUCH_RELEASE_THRESH_FACTOR)
01163 #define THRESHOLD_RELEASE_SENSOR20 (uint16_t)((float) THRESHOLD_PRESS_SENSOR20 * MTOUCH_RELEASE_THRESH_FACTOR)
01164 #define THRESHOLD_RELEASE_SENSOR21 (uint16_t)((float) THRESHOLD_PRESS_SENSOR21 * MTOUCH_RELEASE_THRESH_FACTOR)
01165 #define THRESHOLD_RELEASE_SENSOR22 (uint16_t)((float) THRESHOLD_PRESS_SENSOR22 * MTOUCH_RELEASE_THRESH_FACTOR)
01166 #define THRESHOLD_RELEASE_SENSOR23 (uint16_t)((float) THRESHOLD_PRESS_SENSOR23 * MTOUCH_RELEASE_THRESH_FACTOR)
01167 #define THRESHOLD_RELEASE_SENSOR24 (uint16_t)((float) THRESHOLD_PRESS_SENSOR24 * MTOUCH_RELEASE_THRESH_FACTOR)
01168 #define THRESHOLD_RELEASE_SENSOR25 (uint16_t)((float) THRESHOLD_PRESS_SENSOR25 * MTOUCH_RELEASE_THRESH_FACTOR)
01169 #define THRESHOLD_RELEASE_SENSOR26 (uint16_t)((float) THRESHOLD_PRESS_SENSOR26 * MTOUCH_RELEASE_THRESH_FACTOR)
01170 #define THRESHOLD_RELEASE_SENSOR27 (uint16_t)((float) THRESHOLD_PRESS_SENSOR27 * MTOUCH_RELEASE_THRESH_FACTOR)
01171 #define THRESHOLD_RELEASE_SENSOR28 (uint16_t)((float) THRESHOLD_PRESS_SENSOR28 * MTOUCH_RELEASE_THRESH_FACTOR)
01172 #define THRESHOLD_RELEASE_SENSOR29 (uint16_t)((float) THRESHOLD_PRESS_SENSOR29 * MTOUCH_RELEASE_THRESH_FACTOR)
01173
01174 #if defined(MTOUCH_DYNAMIC_SENSORS)
01175 #if !defined(MTOUCH_DYNAMIC_THRESHOLDS)
01176 #define MTOUCH_DYNAMIC_THRESHOLDS
01177 #endif
01178 #endif
01179
01180 #if MTOUCH_NUMBER_SENSORS == 1
01181 #define MTOUCH_INDEXMINUSONE_0 0
01182 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0")
01183 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0}
01184 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0}
01185 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01186 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0 }
01187 #endif
01188 #endif
01189 #if MTOUCH_NUMBER_SENSORS == 2
01190 #define MTOUCH_INDEXMINUSONE_0 1
01191 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1")
01192 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1}
01193 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1}
01194 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01195 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1 }
01196 #endif
01197 #endif
01198 #if MTOUCH_NUMBER_SENSORS == 3
01199 #define MTOUCH_INDEXMINUSONE_0 2
01200 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2")
01201 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2}
01202 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2}
01203 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01204 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2 }
01205 #endif
01206 #endif
01207 #if MTOUCH_NUMBER_SENSORS == 4
01208 #define MTOUCH_INDEXMINUSONE_0 3
01209 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3")
01210 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3}
01211 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3}
01212 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01213 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3 }
01214 #endif
01215 #endif
01216 #if MTOUCH_NUMBER_SENSORS == 5
01217 #define MTOUCH_INDEXMINUSONE_0 4
01218 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4")
01219 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4}
01220 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4}
01221 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01222 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4 }
01223 #endif
01224 #endif
01225 #if MTOUCH_NUMBER_SENSORS == 6
01226 #define MTOUCH_INDEXMINUSONE_0 5
01227 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5")
01228 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5}
01229 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5}
01230 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01231 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5 }
01232 #endif
01233 #endif
01234 #if MTOUCH_NUMBER_SENSORS == 7
01235 #define MTOUCH_INDEXMINUSONE_0 6
01236 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6")
01237 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6}
01238 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6}
01239 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01240 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6 }
01241 #endif
01242 #endif
01243 #if MTOUCH_NUMBER_SENSORS == 8
01244 #define MTOUCH_INDEXMINUSONE_0 7
01245 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7")
01246 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7}
01247 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7}
01248 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01249 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7 }
01250 #endif
01251 #endif
01252 #if MTOUCH_NUMBER_SENSORS == 9
01253 #define MTOUCH_INDEXMINUSONE_0 8
01254 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8")
01255 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8}
01256 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8}
01257 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01258 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8 }
01259 #endif
01260 #endif
01261 #if MTOUCH_NUMBER_SENSORS == 10
01262 #define MTOUCH_INDEXMINUSONE_0 9
01263 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9")
01264 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9}
01265 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9}
01266 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01267 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9 }
01268 #endif
01269 #endif
01270 #if MTOUCH_NUMBER_SENSORS == 11
01271 #define MTOUCH_INDEXMINUSONE_0 10
01272 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10")
01273 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10}
01274 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10}
01275 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01276 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10 }
01277 #endif
01278 #endif
01279 #if MTOUCH_NUMBER_SENSORS == 12
01280 #define MTOUCH_INDEXMINUSONE_0 11
01281 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11")
01282 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11}
01283 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11}
01284 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01285 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11 }
01286 #endif
01287 #endif
01288 #if MTOUCH_NUMBER_SENSORS == 13
01289 #define MTOUCH_INDEXMINUSONE_0 12
01290 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12")
01291 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12}
01292 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12}
01293 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01294 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12 }
01295 #endif
01296 #endif
01297 #if MTOUCH_NUMBER_SENSORS == 14
01298 #define MTOUCH_INDEXMINUSONE_0 13
01299 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13")
01300 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13}
01301 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13}
01302 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01303 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13 }
01304 #endif
01305 #endif
01306 #if MTOUCH_NUMBER_SENSORS == 15
01307 #define MTOUCH_INDEXMINUSONE_0 14
01308 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14")
01309 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14}
01310 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14}
01311 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01312 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14 }
01313 #endif
01314 #endif
01315 #if MTOUCH_NUMBER_SENSORS == 16
01316 #define MTOUCH_INDEXMINUSONE_0 15
01317 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15")
01318 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15}
01319 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15}
01320 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01321 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15 }
01322 #endif
01323 #endif
01324 #if MTOUCH_NUMBER_SENSORS == 17
01325 #define MTOUCH_INDEXMINUSONE_0 16
01326 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16")
01327 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16}
01328 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16}
01329 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01330 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16 }
01331 #endif
01332 #endif
01333 #if MTOUCH_NUMBER_SENSORS == 18
01334 #define MTOUCH_INDEXMINUSONE_0 17
01335 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17")
01336 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17}
01337 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17}
01338 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01339 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17 }
01340 #endif
01341 #endif
01342 #if MTOUCH_NUMBER_SENSORS == 19
01343 #define MTOUCH_INDEXMINUSONE_0 18
01344 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18")
01345 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18}
01346 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18}
01347 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01348 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18 }
01349 #endif
01350 #endif
01351 #if MTOUCH_NUMBER_SENSORS == 20
01352 #define MTOUCH_INDEXMINUSONE_0 19
01353 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19")
01354 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19}
01355 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19}
01356 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01357 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19 }
01358 #endif
01359 #endif
01360 #if MTOUCH_NUMBER_SENSORS == 21
01361 #define MTOUCH_INDEXMINUSONE_0 20
01362 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20")
01363 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20}
01364 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20}
01365 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01366 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20 }
01367 #endif
01368 #endif
01369 #if MTOUCH_NUMBER_SENSORS == 22
01370 #define MTOUCH_INDEXMINUSONE_0 21
01371 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21")
01372 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21}
01373 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21}
01374 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01375 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21 }
01376 #endif
01377 #endif
01378 #if MTOUCH_NUMBER_SENSORS == 23
01379 #define MTOUCH_INDEXMINUSONE_0 22
01380 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22")
01381 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22}
01382 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22}
01383 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01384 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22 }
01385 #endif
01386 #endif
01387 #if MTOUCH_NUMBER_SENSORS == 24
01388 #define MTOUCH_INDEXMINUSONE_0 23
01389 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23")
01390 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23}
01391 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23}
01392 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01393 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23 }
01394 #endif
01395 #endif
01396 #if MTOUCH_NUMBER_SENSORS == 25
01397 #define MTOUCH_INDEXMINUSONE_0 24
01398 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24")
01399 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24}
01400 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24}
01401 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01402 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24 }
01403 #endif
01404 #endif
01405 #if MTOUCH_NUMBER_SENSORS == 26
01406 #define MTOUCH_INDEXMINUSONE_0 25
01407 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24, sensor_25")
01408 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24,THRESHOLD_PRESS_SENSOR25}
01409 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24,THRESHOLD_RELEASE_SENSOR25}
01410 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01411 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24, MTOUCH_OVERSAMPLE25 }
01412 #endif
01413 #endif
01414 #if MTOUCH_NUMBER_SENSORS == 27
01415 #define MTOUCH_INDEXMINUSONE_0 26
01416 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24, sensor_25, sensor_26")
01417 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24,THRESHOLD_PRESS_SENSOR25,THRESHOLD_PRESS_SENSOR26}
01418 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24,THRESHOLD_RELEASE_SENSOR25,THRESHOLD_RELEASE_SENSOR26}
01419 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01420 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24, MTOUCH_OVERSAMPLE25, MTOUCH_OVERSAMPLE26 }
01421 #endif
01422 #endif
01423 #if MTOUCH_NUMBER_SENSORS == 28
01424 #define MTOUCH_INDEXMINUSONE_0 27
01425 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24, sensor_25, sensor_26, sensor_27")
01426 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24,THRESHOLD_PRESS_SENSOR25,THRESHOLD_PRESS_SENSOR26,THRESHOLD_PRESS_SENSOR27}
01427 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24,THRESHOLD_RELEASE_SENSOR25,THRESHOLD_RELEASE_SENSOR26,THRESHOLD_RELEASE_SENSOR27}
01428 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01429 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24, MTOUCH_OVERSAMPLE25, MTOUCH_OVERSAMPLE26, MTOUCH_OVERSAMPLE27 }
01430 #endif
01431 #endif
01432 #if MTOUCH_NUMBER_SENSORS == 29
01433 #define MTOUCH_INDEXMINUSONE_0 28
01434 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24, sensor_25, sensor_26, sensor_27, sensor_28")
01435 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24,THRESHOLD_PRESS_SENSOR25,THRESHOLD_PRESS_SENSOR26,THRESHOLD_PRESS_SENSOR27,THRESHOLD_PRESS_SENSOR28}
01436 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24,THRESHOLD_RELEASE_SENSOR25,THRESHOLD_RELEASE_SENSOR26,THRESHOLD_RELEASE_SENSOR27,THRESHOLD_RELEASE_SENSOR28}
01437 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01438 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24, MTOUCH_OVERSAMPLE25, MTOUCH_OVERSAMPLE26, MTOUCH_OVERSAMPLE27, MTOUCH_OVERSAMPLE28 }
01439 #endif
01440 #endif
01441 #if MTOUCH_NUMBER_SENSORS == 30
01442 #define MTOUCH_INDEXMINUSONE_0 29
01443 #define MTOUCH_ASM_MACRO_GLOBAL_SCAN_LABELS() asm("global sensor_0, sensor_1, sensor_2, sensor_3, sensor_4, sensor_5, sensor_6, sensor_7, sensor_8, sensor_9, sensor_10, sensor_11, sensor_12, sensor_13, sensor_14, sensor_15, sensor_16, sensor_17, sensor_18, sensor_19, sensor_20, sensor_21, sensor_22, sensor_23, sensor_24, sensor_25, sensor_26, sensor_27, sensor_28, sensor_29")
01444 #define PRESS_THRESHOLD_INIT {THRESHOLD_PRESS_SENSOR0,THRESHOLD_PRESS_SENSOR1,THRESHOLD_PRESS_SENSOR2,THRESHOLD_PRESS_SENSOR3,THRESHOLD_PRESS_SENSOR4,THRESHOLD_PRESS_SENSOR5,THRESHOLD_PRESS_SENSOR6,THRESHOLD_PRESS_SENSOR7,THRESHOLD_PRESS_SENSOR8,THRESHOLD_PRESS_SENSOR9,THRESHOLD_PRESS_SENSOR10,THRESHOLD_PRESS_SENSOR11,THRESHOLD_PRESS_SENSOR12,THRESHOLD_PRESS_SENSOR13,THRESHOLD_PRESS_SENSOR14,THRESHOLD_PRESS_SENSOR15,THRESHOLD_PRESS_SENSOR16,THRESHOLD_PRESS_SENSOR17,THRESHOLD_PRESS_SENSOR18,THRESHOLD_PRESS_SENSOR19,THRESHOLD_PRESS_SENSOR20,THRESHOLD_PRESS_SENSOR21,THRESHOLD_PRESS_SENSOR22,THRESHOLD_PRESS_SENSOR23,THRESHOLD_PRESS_SENSOR24,THRESHOLD_PRESS_SENSOR25,THRESHOLD_PRESS_SENSOR26,THRESHOLD_PRESS_SENSOR27,THRESHOLD_PRESS_SENSOR28,THRESHOLD_PRESS_SENSOR29}
01445 #define RELEASE_THRESHOLD_INIT {THRESHOLD_RELEASE_SENSOR0,THRESHOLD_RELEASE_SENSOR1,THRESHOLD_RELEASE_SENSOR2,THRESHOLD_RELEASE_SENSOR3,THRESHOLD_RELEASE_SENSOR4,THRESHOLD_RELEASE_SENSOR5,THRESHOLD_RELEASE_SENSOR6,THRESHOLD_RELEASE_SENSOR7,THRESHOLD_RELEASE_SENSOR8,THRESHOLD_RELEASE_SENSOR9,THRESHOLD_RELEASE_SENSOR10,THRESHOLD_RELEASE_SENSOR11,THRESHOLD_RELEASE_SENSOR12,THRESHOLD_RELEASE_SENSOR13,THRESHOLD_RELEASE_SENSOR14,THRESHOLD_RELEASE_SENSOR15,THRESHOLD_RELEASE_SENSOR16,THRESHOLD_RELEASE_SENSOR17,THRESHOLD_RELEASE_SENSOR18,THRESHOLD_RELEASE_SENSOR19,THRESHOLD_RELEASE_SENSOR20,THRESHOLD_RELEASE_SENSOR21,THRESHOLD_RELEASE_SENSOR22,THRESHOLD_RELEASE_SENSOR23,THRESHOLD_RELEASE_SENSOR24,THRESHOLD_RELEASE_SENSOR25,THRESHOLD_RELEASE_SENSOR26,THRESHOLD_RELEASE_SENSOR27,THRESHOLD_RELEASE_SENSOR28,THRESHOLD_RELEASE_SENSOR29}
01446 #if defined(MTOUCH_UNIQUE_OVERSAMPLE_ENABLE)
01447 #define MTOUCH_UNIQUE_OVERSAMPLE_INIT { MTOUCH_OVERSAMPLE0, MTOUCH_OVERSAMPLE1, MTOUCH_OVERSAMPLE2, MTOUCH_OVERSAMPLE3, MTOUCH_OVERSAMPLE4, MTOUCH_OVERSAMPLE5, MTOUCH_OVERSAMPLE6, MTOUCH_OVERSAMPLE7, MTOUCH_OVERSAMPLE8, MTOUCH_OVERSAMPLE9, MTOUCH_OVERSAMPLE10, MTOUCH_OVERSAMPLE11, MTOUCH_OVERSAMPLE12, MTOUCH_OVERSAMPLE13, MTOUCH_OVERSAMPLE14, MTOUCH_OVERSAMPLE15, MTOUCH_OVERSAMPLE16, MTOUCH_OVERSAMPLE17, MTOUCH_OVERSAMPLE18, MTOUCH_OVERSAMPLE19, MTOUCH_OVERSAMPLE20, MTOUCH_OVERSAMPLE21, MTOUCH_OVERSAMPLE22, MTOUCH_OVERSAMPLE23, MTOUCH_OVERSAMPLE24, MTOUCH_OVERSAMPLE25, MTOUCH_OVERSAMPLE26, MTOUCH_OVERSAMPLE27, MTOUCH_OVERSAMPLE28, MTOUCH_OVERSAMPLE29 }
01448 #endif
01449 #endif
01450
01451 #if defined(MTOUCH_EEPROM_ENABLED)
01452 #if !defined(MTOUCH_EEPROM_START_ADR)
01453 #warning MTOUCH_EEPROM_START_ADR is not defined. Defaulting to 0x00 as the start address.
01454 #define MTOUCH_EEPROM_START_ADR 0x00
01455 #endif
01456 #include "mTouch_eeprom.h"
01457 #endif
01458
01459 #define NOP0
01460 #define NOP1 asm("nop");
01461 #define NOP2 NOP1; NOP1;
01462 #define NOP3 NOP2; NOP1;
01463 #define NOP4 NOP3; NOP1;
01464 #define NOP5 NOP4; NOP1;
01465 #define NOP6 NOP5; NOP1;
01466 #define NOP7 NOP6; NOP1;
01467 #define NOP8 NOP7; NOP1;
01468 #define NOP9 NOP8; NOP1;
01469 #define NOP10 NOP9; NOP1;
01470 #define NOP11 NOP10; NOP1;
01471 #define NOP12 NOP11; NOP1;
01472 #define NOP13 NOP12; NOP1;
01473 #define NOP14 NOP13; NOP1;
01474 #define NOP15 NOP14; NOP1;
01475 #define NOP16 NOP15; NOP1;
01476 #define NOP17 NOP16; NOP1;
01477 #define NOP18 NOP17; NOP1;
01478 #define NOP19 NOP18; NOP1;
01479 #define NOP20 NOP19; NOP1;
01480 #define NOP21 NOP20; NOP1;
01481 #define NOP22 NOP21; NOP1;
01482 #define NOP23 NOP22; NOP1;
01483 #define NOP24 NOP23; NOP1;
01484 #define NOP25 NOP24; NOP1;
01485 #define NOP26 NOP25; NOP1;
01486 #define NOP27 NOP26; NOP1;
01487 #define NOP28 NOP27; NOP1;
01488 #define NOP29 NOP28; NOP1;
01489 #define NOP30 NOP29; NOP1;
01490 #define NOP31 NOP30; NOP1;
01491 #define NOP32 NOP31; NOP1;
01492 #define NOP33 NOP32; NOP1;
01493 #define NOP34 NOP33; NOP1;
01494 #define NOP35 NOP34; NOP1;
01495 #define NOP36 NOP35; NOP1;
01496 #define NOP37 NOP36; NOP1;
01497 #define NOP38 NOP37; NOP1;
01498 #define NOP39 NOP38; NOP1;
01499 #define NOP40 NOP39; NOP1;
01500 #define NOP41 NOP40; NOP1;
01501 #define NOP42 NOP41; NOP1;
01502 #define NOP43 NOP42; NOP1;
01503 #define NOP44 NOP43; NOP1;
01504 #define NOP45 NOP44; NOP1;
01505 #define NOP46 NOP45; NOP1;
01506 #define NOP47 NOP46; NOP1;
01507 #define NOP48 NOP47; NOP1;
01508 #define NOP49 NOP48; NOP1;
01509 #define NOP50 NOP49; NOP1;
01510 #define NOP51 NOP50; NOP1;
01511 #define NOP52 NOP50; NOP2;
01512 #define NOP53 NOP50; NOP3;
01513 #define NOP54 NOP50; NOP4;
01514 #define NOP55 NOP50; NOP5;
01515 #define NOP56 NOP50; NOP6;
01516 #define NOP57 NOP50; NOP7;
01517 #define NOP58 NOP50; NOP8;
01518 #define NOP59 NOP50; NOP9;
01519 #define NOP60 NOP50; NOP10;
01520 #define NOP61 NOP50; NOP10; NOP1;
01521 #define NOP62 NOP50; NOP11; NOP1;
01522 #define NOP63 NOP50; NOP12; NOP1;
01523 #define NOP64 NOP50; NOP13; NOP1;
01524 #define NOP65 NOP50; NOP14; NOP1;
01525 #define NOP66 NOP50; NOP15; NOP1;
01526 #define NOP67 NOP50; NOP16; NOP1;
01527 #define NOP68 NOP50; NOP17; NOP1;
01528 #define NOP69 NOP50; NOP18; NOP1;
01529 #define NOP70 NOP50; NOP19; NOP1;
01530 #define NOP71 NOP50; NOP20; NOP1;
01531 #define NOP72 NOP50; NOP21; NOP1;
01532 #define NOP73 NOP50; NOP22; NOP1;
01533 #define NOP74 NOP50; NOP23; NOP1;
01534 #define NOP75 NOP50; NOP24; NOP1;
01535 #define NOP76 NOP50; NOP25; NOP1;
01536 #define NOP77 NOP50; NOP26; NOP1;
01537 #define NOP78 NOP50; NOP27; NOP1;
01538 #define NOP79 NOP50; NOP28; NOP1;
01539 #define NOP80 NOP50; NOP29; NOP1;
01540 #define NOP81 NOP50; NOP30; NOP1;
01541 #define NOP82 NOP50; NOP31; NOP1;
01542 #define NOP83 NOP50; NOP32; NOP1;
01543 #define NOP84 NOP50; NOP33; NOP1;
01544 #define NOP85 NOP50; NOP34; NOP1;
01545 #define NOP86 NOP50; NOP35; NOP1;
01546 #define NOP87 NOP50; NOP36; NOP1;
01547 #define NOP88 NOP50; NOP37; NOP1;
01548 #define NOP89 NOP50; NOP38; NOP1;
01549 #define NOP90 NOP50; NOP39; NOP1;
01550 #define NOP91 NOP50; NOP40; NOP1;
01551 #define NOP92 NOP50; NOP41; NOP1;
01552 #define NOP93 NOP50; NOP42; NOP1;
01553 #define NOP94 NOP50; NOP43; NOP1;
01554 #define NOP95 NOP50; NOP44; NOP1;
01555 #define NOP96 NOP50; NOP45; NOP1;
01556 #define NOP97 NOP50; NOP46; NOP1;
01557 #define NOP98 NOP50; NOP47; NOP1;
01558 #define NOP99 NOP50; NOP48; NOP1;
01559 #define NOP100 NOP50; NOP50;
01560
01561 #define _NOP_DELAY(value) __paste(NOP,value);
01562
01563 #if !defined(CVD_CHOLD_CHARGE_DELAY)
01564 #define CVD_CHOLD_CHARGE_DELAY 0
01565 #endif
01566 #if !defined(CVD_SETTLING_DELAY)
01567 #define CVD_SETTLING_DELAY 0
01568 #endif
01569 #if !defined(CVD_PRE_GODONE_DELAY)
01570 #define CVD_PRE_GODONE_DELAY 0
01571 #endif
01572
01573 #if (CVD_CHOLD_CHARGE_DELAY - 2 - 3 * ((CVD_CHOLD_CHARGE_DELAY-2)/3)) == 1
01574 #define CVD_DELAY_CHOLD_REMAINDER() _NOP_DELAY(1);
01575 #elif (CVD_CHOLD_CHARGE_DELAY - 2 - 3 * ((CVD_CHOLD_CHARGE_DELAY-2)/3)) == 2
01576 #define CVD_DELAY_CHOLD_REMAINDER() _NOP_DELAY(2);
01577 #else
01578 #define CVD_DELAY_CHOLD_REMAINDER()
01579 #endif
01580
01581 #if defined(_12F615) || defined(_12HV615) || defined(_PIC18)
01582 #define CVD_DELAY_CHOLD() _NOP_DELAY(CVD_CHOLD_CHARGE_DELAY);
01583 #else
01584 #if CVD_CHOLD_CHARGE_DELAY > 4
01585 #define CVD_DELAY_VARIABLE_REQUIRED
01586 #define CVD_DELAY_CHOLD() \
01587 do { \
01588 asm("BANKSEL _mTouch_delayCount" ); \
01589 asm("movlw " ___mkstr(CVD_CHOLD_CHARGE_DELAY-2) "/3"); \
01590 asm("movwf " ___mkstr(NOBANK(_mTouch_delayCount)) ); \
01591 asm("decfsz " ___mkstr(NOBANK(_mTouch_delayCount)) ", F"); \
01592 asm("goto $-1"); \
01593 CVD_DELAY_CHOLD_REMAINDER(); \
01594 } while(0)
01595 #else
01596 #define CVD_DELAY_CHOLD() _NOP_DELAY(CVD_CHOLD_CHARGE_DELAY);
01597 #endif
01598 #endif
01599
01600 #if (CVD_SETTLING_DELAY - 2 - 3 * ((CVD_SETTLING_DELAY-2)/3)) == 1
01601 #define CVD_DELAY_SETTLE_REMAINDER() _NOP_DELAY(1);
01602 #elif (CVD_SETTLING_DELAY - 2 - 3 * ((CVD_SETTLING_DELAY-2)/3)) == 2
01603 #define CVD_DELAY_SETTLE_REMAINDER() _NOP_DELAY(2);
01604 #else
01605 #define CVD_DELAY_SETTLE_REMAINDER()
01606 #endif
01607
01608 #if defined(_12F615) || defined(_12HV615) || defined(_PIC18)
01609 #define CVD_DELAY_SETTLE() _NOP_DELAY(CVD_SETTLING_DELAY);
01610 #else
01611 #if CVD_SETTLING_DELAY > 4
01612 #if !defined(CVD_DELAY_VARIABLE_REQUIRED)
01613 #define CVD_DELAY_VARIABLE_REQUIRED
01614 #endif
01615
01616 #define CVD_DELAY_SETTLE() \
01617 do { \
01618 asm("BANKSEL _mTouch_delayCount" ); \
01619 asm("movlw " ___mkstr(CVD_SETTLING_DELAY-2) "/3" ); \
01620 asm("movwf " ___mkstr(NOBANK(_mTouch_delayCount)) ); \
01621 asm("decfsz " ___mkstr(NOBANK(_mTouch_delayCount)) ", F"); \
01622 asm("goto $-1" ); \
01623 CVD_DELAY_SETTLE_REMAINDER(); \
01624 } while(0)
01625 #else
01626 #define CVD_DELAY_SETTLE() _NOP_DELAY(CVD_SETTLING_DELAY);
01627 #endif
01628 #endif
01629
01630 #if (CVD_UNIMPLEMENTED_AVAILABLE == 1)
01631 #define CVD_GO_DONE_DELAY() asm("BANKSEL " ___mkstr(_ADCON0)); \
01632 asm("movlw " ___mkstr(MTOUCH_SELECT_ISO_NOGO | 0x02)); \
01633 asm("movwf " ___mkstr(NOBANK(_ADCON0)));
01634 #else
01635 #if !defined(PIC_ADC_TAD)
01636 #warning The PIC_ADC_TAD value in your devices hardware profile has not been defined. Defaulting to '1' us.
01637 #define PIC_ADC_TAD 1
01638 #endif
01639 #if PIC_ADC_TAD == 1
01640 #if _XTAL_FREQ == 32000000
01641 #define CVD_GO_DONE_DELAY() _NOP_DELAY(3);
01642 #elif _XTAL_FREQ == 16000000
01643 #define CVD_GO_DONE_DELAY() _NOP_DELAY(1);
01644 #elif _XTAL_FREQ == 8000000
01645 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01646 #elif _XTAL_FREQ == 4000000
01647 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01648 #elif _XTAL_FREQ == 2000000
01649 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01650 #elif _XTAL_FREQ == 1000000
01651 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01652 #endif
01653 #elif PIC_ADC_TAD == 2
01654 #if _XTAL_FREQ == 32000000
01655 #define CVD_GO_DONE_DELAY() _NOP_DELAY(7);
01656 #elif _XTAL_FREQ == 16000000
01657 #define CVD_GO_DONE_DELAY() _NOP_DELAY(3);
01658 #elif _XTAL_FREQ == 8000000
01659 #define CVD_GO_DONE_DELAY() _NOP_DELAY(1);
01660 #elif _XTAL_FREQ == 4000000
01661 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01662 #elif _XTAL_FREQ == 2000000
01663 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01664 #elif _XTAL_FREQ == 1000000
01665 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01666 #endif
01667 #elif PIC_ADC_TAD == 4
01668 #if _XTAL_FREQ == 32000000
01669 #define CVD_GO_DONE_DELAY() _NOP_DELAY(15);
01670 #elif _XTAL_FREQ == 16000000
01671 #define CVD_GO_DONE_DELAY() _NOP_DELAY(7);
01672 #elif _XTAL_FREQ == 8000000
01673 #define CVD_GO_DONE_DELAY() _NOP_DELAY(3);
01674 #elif _XTAL_FREQ == 4000000
01675 #define CVD_GO_DONE_DELAY() _NOP_DELAY(1);
01676 #elif _XTAL_FREQ == 2000000
01677 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01678 #elif _XTAL_FREQ == 1000000
01679 #define CVD_GO_DONE_DELAY() _NOP_DELAY(0);
01680 #endif
01681 #endif
01682 #endif
01683
01684 #if defined(MTOUCH_NUMBER_OF_SLIDERS)
01685 #if (MTOUCH_NUMBER_OF_SLIDERS > 0)
01686 #define MTOUCH_SLIDERS_ENABLED
01687 #include "mTouch_slider.h"
01688 #endif
01689 #endif
01690
01691 #define mTouch_GetAccumulator(dataPointer) ((uint24_t)(dataPointer->accumulator.v) & 0xFFFFF)
01692 #define mTouch_GetResult(dataPointer) (uint16_t)(dataPointer->result.v >> 4)
01693 #define mTouch_SetAccumulator(dataPointer, value) \
01694 do \
01695 { \
01696 mTouch_ClearAccumulator(dataPointer) \
01697 dataPointer->accumulator.v |= (uint16_t)(value & 0xFFF); \
01698 } while(0);
01699 #define mTouch_SetResult(dataPointer, value) \
01700 do \
01701 { \
01702 dataPointer->result.v &= 0x000F; \
01703 dataPointer->result.v |= (uint16_t)(value << 4); \
01704 } while(0);
01705 #define mTouch_IncResult(dataPointer) \
01706 do \
01707 { \
01708 dataPointer->result.v += 0x10; \
01709 result++; \
01710 } while(0);
01711 #define mTouch_DecResult(dataPointer) \
01712 do \
01713 { \
01714 dataPointer->result.v -= 0x10; \
01715 result--; \
01716 } while(0);
01717 #define mTouch_UpdateAccumulator(dataPointer) \
01718 do \
01719 { \
01720 dataPointer->accumulator.v += mTouch_GetResult(dataPointer); \
01721 } while(0);
01722 #define mTouch_ClearAccumulator(dataPointer) \
01723 do \
01724 { \
01725 dataPointer->accumulator.v &= 0xF00000; \
01726 } while(0);
01727
01728 #define MTOUCH_INDEXMINUSONE_1 0
01729 #define MTOUCH_INDEXMINUSONE_2 1
01730 #define MTOUCH_INDEXMINUSONE_3 2
01731 #define MTOUCH_INDEXMINUSONE_4 3
01732 #define MTOUCH_INDEXMINUSONE_5 4
01733 #define MTOUCH_INDEXMINUSONE_6 5
01734 #define MTOUCH_INDEXMINUSONE_7 6
01735 #define MTOUCH_INDEXMINUSONE_8 7
01736 #define MTOUCH_INDEXMINUSONE_9 8
01737 #define MTOUCH_INDEXMINUSONE_10 9
01738 #define MTOUCH_INDEXMINUSONE_11 10
01739 #define MTOUCH_INDEXMINUSONE_12 11
01740 #define MTOUCH_INDEXMINUSONE_13 12
01741 #define MTOUCH_INDEXMINUSONE_14 13
01742 #define MTOUCH_INDEXMINUSONE_15 14
01743 #define MTOUCH_INDEXMINUSONE_16 15
01744 #define MTOUCH_INDEXMINUSONE_17 16
01745 #define MTOUCH_INDEXMINUSONE_18 17
01746 #define MTOUCH_INDEXMINUSONE_19 18
01747 #define MTOUCH_INDEXMINUSONE_20 19
01748 #define MTOUCH_INDEXMINUSONE_21 20
01749 #define MTOUCH_INDEXMINUSONE_22 21
01750 #define MTOUCH_INDEXMINUSONE_23 22
01751 #define MTOUCH_INDEXMINUSONE_24 23
01752 #define MTOUCH_INDEXMINUSONE_25 24
01753 #define MTOUCH_INDEXMINUSONE_26 25
01754 #define MTOUCH_INDEXMINUSONE_27 26
01755 #define MTOUCH_INDEXMINUSONE_28 27
01756 #define MTOUCH_INDEXMINUSONE_29 28
01757
01758
01759 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR0)
01760 #define CVD_REFSENSOR_0 CVD_REFERENCE_SENSOR0
01761 #else
01762 #define CVD_REFSENSOR_0 MTOUCH_INDEXMINUSONE_0
01763 #endif
01764 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR1)
01765 #define CVD_REFSENSOR_1 CVD_REFERENCE_SENSOR1
01766 #else
01767 #define CVD_REFSENSOR_1 MTOUCH_INDEXMINUSONE_1
01768 #endif
01769 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR2)
01770 #define CVD_REFSENSOR_2 CVD_REFERENCE_SENSOR2
01771 #else
01772 #define CVD_REFSENSOR_2 MTOUCH_INDEXMINUSONE_2
01773 #endif
01774 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR3)
01775 #define CVD_REFSENSOR_3 CVD_REFERENCE_SENSOR3
01776 #else
01777 #define CVD_REFSENSOR_3 MTOUCH_INDEXMINUSONE_3
01778 #endif
01779 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR4)
01780 #define CVD_REFSENSOR_4 CVD_REFERENCE_SENSOR4
01781 #else
01782 #define CVD_REFSENSOR_4 MTOUCH_INDEXMINUSONE_4
01783 #endif
01784 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR5)
01785 #define CVD_REFSENSOR_5 CVD_REFERENCE_SENSOR5
01786 #else
01787 #define CVD_REFSENSOR_5 MTOUCH_INDEXMINUSONE_5
01788 #endif
01789 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR6)
01790 #define CVD_REFSENSOR_6 CVD_REFERENCE_SENSOR6
01791 #else
01792 #define CVD_REFSENSOR_6 MTOUCH_INDEXMINUSONE_6
01793 #endif
01794 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR7)
01795 #define CVD_REFSENSOR_7 CVD_REFERENCE_SENSOR7
01796 #else
01797 #define CVD_REFSENSOR_7 MTOUCH_INDEXMINUSONE_7
01798 #endif
01799 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR8)
01800 #define CVD_REFSENSOR_8 CVD_REFERENCE_SENSOR8
01801 #else
01802 #define CVD_REFSENSOR_8 MTOUCH_INDEXMINUSONE_8
01803 #endif
01804 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR9)
01805 #define CVD_REFSENSOR_9 CVD_REFERENCE_SENSOR9
01806 #else
01807 #define CVD_REFSENSOR_9 MTOUCH_INDEXMINUSONE_9
01808 #endif
01809 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR10)
01810 #define CVD_REFSENSOR_10 CVD_REFERENCE_SENSOR10
01811 #else
01812 #define CVD_REFSENSOR_10 MTOUCH_INDEXMINUSONE_10
01813 #endif
01814 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR11)
01815 #define CVD_REFSENSOR_11 CVD_REFERENCE_SENSOR11
01816 #else
01817 #define CVD_REFSENSOR_11 MTOUCH_INDEXMINUSONE_11
01818 #endif
01819 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR12)
01820 #define CVD_REFSENSOR_12 CVD_REFERENCE_SENSOR12
01821 #else
01822 #define CVD_REFSENSOR_12 MTOUCH_INDEXMINUSONE_12
01823 #endif
01824 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR13)
01825 #define CVD_REFSENSOR_13 CVD_REFERENCE_SENSOR13
01826 #else
01827 #define CVD_REFSENSOR_13 MTOUCH_INDEXMINUSONE_13
01828 #endif
01829 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR14)
01830 #define CVD_REFSENSOR_14 CVD_REFERENCE_SENSOR14
01831 #else
01832 #define CVD_REFSENSOR_14 MTOUCH_INDEXMINUSONE_14
01833 #endif
01834 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR15)
01835 #define CVD_REFSENSOR_15 CVD_REFERENCE_SENSOR15
01836 #else
01837 #define CVD_REFSENSOR_15 MTOUCH_INDEXMINUSONE_15
01838 #endif
01839 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR16)
01840 #define CVD_REFSENSOR_16 CVD_REFERENCE_SENSOR16
01841 #else
01842 #define CVD_REFSENSOR_16 MTOUCH_INDEXMINUSONE_16
01843 #endif
01844 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR17)
01845 #define CVD_REFSENSOR_17 CVD_REFERENCE_SENSOR17
01846 #else
01847 #define CVD_REFSENSOR_17 MTOUCH_INDEXMINUSONE_17
01848 #endif
01849 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR18)
01850 #define CVD_REFSENSOR_18 CVD_REFERENCE_SENSOR18
01851 #else
01852 #define CVD_REFSENSOR_18 MTOUCH_INDEXMINUSONE_18
01853 #endif
01854 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR19)
01855 #define CVD_REFSENSOR_19 CVD_REFERENCE_SENSOR19
01856 #else
01857 #define CVD_REFSENSOR_19 MTOUCH_INDEXMINUSONE_19
01858 #endif
01859 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR20)
01860 #define CVD_REFSENSOR_20 CVD_REFERENCE_SENSOR20
01861 #else
01862 #define CVD_REFSENSOR_20 MTOUCH_INDEXMINUSONE_20
01863 #endif
01864 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR21)
01865 #define CVD_REFSENSOR_21 CVD_REFERENCE_SENSOR21
01866 #else
01867 #define CVD_REFSENSOR_21 MTOUCH_INDEXMINUSONE_21
01868 #endif
01869 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR22)
01870 #define CVD_REFSENSOR_22 CVD_REFERENCE_SENSOR22
01871 #else
01872 #define CVD_REFSENSOR_22 MTOUCH_INDEXMINUSONE_22
01873 #endif
01874 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR23)
01875 #define CVD_REFSENSOR_23 CVD_REFERENCE_SENSOR23
01876 #else
01877 #define CVD_REFSENSOR_23 MTOUCH_INDEXMINUSONE_23
01878 #endif
01879 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR24)
01880 #define CVD_REFSENSOR_24 CVD_REFERENCE_SENSOR24
01881 #else
01882 #define CVD_REFSENSOR_24 MTOUCH_INDEXMINUSONE_24
01883 #endif
01884 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR25)
01885 #define CVD_REFSENSOR_25 CVD_REFERENCE_SENSOR25
01886 #else
01887 #define CVD_REFSENSOR_25 MTOUCH_INDEXMINUSONE_25
01888 #endif
01889 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR26)
01890 #define CVD_REFSENSOR_26 CVD_REFERENCE_SENSOR26
01891 #else
01892 #define CVD_REFSENSOR_26 MTOUCH_INDEXMINUSONE_26
01893 #endif
01894 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR27)
01895 #define CVD_REFSENSOR_27 CVD_REFERENCE_SENSOR27
01896 #else
01897 #define CVD_REFSENSOR_27 MTOUCH_INDEXMINUSONE_27
01898 #endif
01899 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR28)
01900 #define CVD_REFSENSOR_28 CVD_REFERENCE_SENSOR28
01901 #else
01902 #define CVD_REFSENSOR_28 MTOUCH_INDEXMINUSONE_28
01903 #endif
01904 #if defined(MTOUCH_UNIQUE_REFERENCE_OPTIONS) && defined(CVD_REFERENCE_SENSOR29)
01905 #define CVD_REFSENSOR_29 CVD_REFERENCE_SENSOR29
01906 #else
01907 #define CVD_REFSENSOR_29 MTOUCH_INDEXMINUSONE_29
01908 #endif
01909
01910 #if defined(MTOUCH_UNIQUE_SCAN_OPTIONS)
01911 #if defined(CVD_GUARD_IO_0_ENABLED)
01912 #define
01913 #endif
01914 #endif
01915
01916
01917 #if defined(CVD_FORCE_REF_DAC) && !defined(PIC_DACOUT_AVAILABLE)
01918 #error Your currently chosen processor does not have a DACOUT pin available. Please undefine CVD_FORCE_REF_DAC in the configuration file.
01919 #endif
01920 #if defined(CVD_GUARD_DACOUT_ENABLED) && !defined(PIC_DACOUT_AVAILABLE)
01921 #error Your currently chosen processor does not have a DACOUT pin available. Please undefine CVD_GUARD_DACOUT_ENABLED in the configuration file.
01922 #endif
01923 #if defined(CVD_MUTUAL_ENABLED) && defined(CVD_MUTUAL_EXCLUSIVE_ENABLED)
01924 #error Both CVD_MUTUAL_ENABLED and CVD_MUTUAL_EXCLUSIVE_ENABLED are defined. Please comment out one of them in the configuration file.
01925 #endif
01926 #if defined(CVD_GUARD_DACOUT_ENABLED) && defined(CVD_GUARD_IO_ENABLED)
01927 #error Both CVD_GUARD_IO_ENABLED and CVD_GUARD_DACOUT_ENABLED are defined. Please undefine one of them in the configuration file.
01928 #endif
01929
01930 #if (MTOUCH_INTEGRATION_TYPE == MTOUCH_CONTROLS_ISR) && defined(MCOMM_ENABLED) && defined(MCOMM_TWO_WAY_ENABLED)
01931 #error mComm 2-way communications are not compatible with MTOUCH_INTEGRATION_TYPE == MTOUCH_CONTROLS_ISR, please redefine MTOUCH_INTEGRATION_TYPE to MTOUCH_CALLED_FROM_ISR or MTOUCH_CALLED_FROM_MAINLOOP. An example ISR function to handle the mComm and mTouch interrupts is available in the example main.c file.
01932 #endif
01933
01934 #if (MTOUCH_INTEGRATION_TYPE == MTOUCH_CONTROLS_ISR) || (MTOUCH_INTEGRATION_TYPE == MTOUCH_CALLED_FROM_ISR)
01935 #if !defined(MTOUCH_ISR_TIMER)
01936 #define MTOUCH_ISR_TIMER 0
01937 #warning MTOUCH_ISR_TIMER is not defined in the configuration file. Defaulting to TMR0.
01938 #endif
01939
01940 #if MTOUCH_ISR_TIMER == 0
01941 #if !defined(PIC_TIMER0_AVAILABLE)
01942 #error Timer0 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
01943 #else
01944 #if defined(_PIC18)
01945 #define MTOUCH_ISR_TMRxIF TMR0IF
01946 #define MTOUCH_ISR_TMRxIE TMR0IE
01947 #define MTOUCH_ISR_TMR_ASM _TMR0L
01948 #define MTOUCH_ISR_TMR_C TMR0L
01949 #else
01950 #define MTOUCH_ISR_TMRxIF TMR0IF
01951 #define MTOUCH_ISR_TMRxIE TMR0IE
01952 #define MTOUCH_ISR_TMR_ASM _TMR0
01953 #define MTOUCH_ISR_TMR_C TMR0
01954 #endif
01955 #endif
01956 #elif MTOUCH_ISR_TIMER == 1
01957 #error The mTouch framework is not compatible with TMR1. Please redefine MTOUCH_ISR_TIMER to an 8-bit timer.
01958 #elif MTOUCH_ISR_TIMER == 3
01959 #error The mTouch framework is not compatible with TMR3. Please redefine MTOUCH_ISR_TIMER to an 8-bit timer.
01960 #elif MTOUCH_ISR_TIMER == 5
01961 #error The mTouch framework is not compatible with TMR5. Please redefine MTOUCH_ISR_TIMER to an 8-bit timer.
01962 #elif MTOUCH_ISR_TIMER == 7
01963 #error The mTouch framework is not compatible with TMR7. Please redefine MTOUCH_ISR_TIMER to an 8-bit timer.
01964 #elif MTOUCH_ISR_TIMER == 9
01965 #error The mTouch framework is not compatible with TMR9. Please redefine MTOUCH_ISR_TIMER to an 8-bit timer.
01966 #elif MTOUCH_ISR_TIMER == 2
01967 #if !defined(PIC_TIMER2_AVAILABLE)
01968 #error Timer2 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
01969 #else
01970 #define MTOUCH_ISR_TMRxIF TMR2IF
01971 #define MTOUCH_ISR_TMRxIE TMR2IE
01972 #define MTOUCH_ISR_TMR_ASM _TMR2
01973 #define MTOUCH_ISR_TMR_C TMR2
01974 #define MTOUCH_ISR_TMR_PEIE_REQUIRED
01975 #endif
01976 #elif MTOUCH_ISR_TIMER == 4
01977 #if !defined(PIC_TIMER4_AVAILABLE)
01978 #error Timer4 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
01979 #else
01980 #define MTOUCH_ISR_TMRxIF TMR4IF
01981 #define MTOUCH_ISR_TMRxIE TMR4IE
01982 #define MTOUCH_ISR_TMR_ASM _TMR4
01983 #define MTOUCH_ISR_TMR_C TMR4
01984 #define MTOUCH_ISR_TMR_PEIE_REQUIRED
01985 #endif
01986 #elif MTOUCH_ISR_TIMER == 6
01987 #if !defined(PIC_TIMER6_AVAILABLE)
01988 #error Timer6 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
01989 #else
01990 #define MTOUCH_ISR_TMRxIF TMR6IF
01991 #define MTOUCH_ISR_TMRxIE TMR6IE
01992 #define MTOUCH_ISR_TMR_ASM _TMR6
01993 #define MTOUCH_ISR_TMR_C TMR6
01994 #define MTOUCH_ISR_TMR_PEIE_REQUIRED
01995 #endif
01996 #elif MTOUCH_ISR_TIMER == 8
01997 #if !defined(PIC_TIMER8_AVAILABLE)
01998 #error Timer8 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
01999 #else
02000 #define MTOUCH_ISR_TMRxIF TMR8IF
02001 #define MTOUCH_ISR_TMRxIE TMR8IE
02002 #define MTOUCH_ISR_TMR_ASM _TMR8
02003 #define MTOUCH_ISR_TMR_C TMR8
02004 #define MTOUCH_ISR_TMR_PEIE_REQUIRED
02005 #endif
02006 #elif MTOUCH_ISR_TIMER == 10
02007 #if !defined(PIC_TIMER10_AVAILABLE)
02008 #error Timer10 does not exist for the currently selected microcontroller. Please redefine MTOUCH_ISR_TIMER to an available timer.
02009 #else
02010 #define MTOUCH_ISR_TMRxIF TMR10IF
02011 #define MTOUCH_ISR_TMRxIE TMR10IE
02012 #define MTOUCH_ISR_TMR_ASM _TMR10
02013 #define MTOUCH_ISR_TMR_C TMR10
02014 #define MTOUCH_ISR_TMR_PEIE_REQUIRED
02015 #endif
02016 #endif
02017 #endif
02018
02019 #if defined(MTOUCH_MOST_PRESSED_ONLY) && (MTOUCH_NUMBER_SENSORS < 2)
02020 #warning The mTouch Framework's most-pressed algorithm has been enabled but there are not 2 active sensors. Undefining MTOUCH_MOST_PRESSED_ONLY.
02021 #undef MTOUCH_MOST_PRESSED_ONLY
02022 #endif
02023
02024
02025 #if defined(MTOUCH_USE_GPIO)
02026 #define MTOUCH_PORT_C_SENSOR(index) GP
02027 #define MTOUCH_PORT_ASM_SENSOR(index) _GP
02028 #define MTOUCH_LAT_C_SENSOR(index) GPIO
02029 #define MTOUCH_LAT_ASM_SENSOR(index) _GPIO
02030 #define MTOUCH_LETTER_SENSOR0 IO
02031 #define MTOUCH_LETTER_SENSOR1 IO
02032 #define MTOUCH_LETTER_SENSOR2 IO
02033 #define MTOUCH_LETTER_SENSOR3 IO
02034 #define MTOUCH_LETTER_SENSOR4 IO
02035 #define MTOUCH_LETTER_SENSOR5 IO
02036 #define MTOUCH_LETTER_SENSOR6 IO
02037 #define MTOUCH_LETTER_SENSOR7 IO
02038 #else
02039 #define MTOUCH_LETTER_SENSOR0 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR0)
02040 #define MTOUCH_LETTER_SENSOR1 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR1)
02041 #define MTOUCH_LETTER_SENSOR2 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR2)
02042 #define MTOUCH_LETTER_SENSOR3 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR3)
02043 #define MTOUCH_LETTER_SENSOR4 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR4)
02044 #define MTOUCH_LETTER_SENSOR5 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR5)
02045 #define MTOUCH_LETTER_SENSOR6 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR6)
02046 #define MTOUCH_LETTER_SENSOR7 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR7)
02047 #define MTOUCH_LETTER_SENSOR8 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR8)
02048 #define MTOUCH_LETTER_SENSOR9 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR9)
02049 #define MTOUCH_LETTER_SENSOR10 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR10)
02050 #define MTOUCH_LETTER_SENSOR11 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR11)
02051 #define MTOUCH_LETTER_SENSOR12 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR12)
02052 #define MTOUCH_LETTER_SENSOR13 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR13)
02053 #define MTOUCH_LETTER_SENSOR14 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR14)
02054 #define MTOUCH_LETTER_SENSOR15 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR15)
02055 #define MTOUCH_LETTER_SENSOR16 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR16)
02056 #define MTOUCH_LETTER_SENSOR17 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR17)
02057 #define MTOUCH_LETTER_SENSOR18 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR18)
02058 #define MTOUCH_LETTER_SENSOR19 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR19)
02059 #define MTOUCH_LETTER_SENSOR20 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR20)
02060 #define MTOUCH_LETTER_SENSOR21 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR21)
02061 #define MTOUCH_LETTER_SENSOR22 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR22)
02062 #define MTOUCH_LETTER_SENSOR23 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR23)
02063 #define MTOUCH_LETTER_SENSOR24 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR24)
02064 #define MTOUCH_LETTER_SENSOR25 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR25)
02065 #define MTOUCH_LETTER_SENSOR26 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR26)
02066 #define MTOUCH_LETTER_SENSOR27 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR27)
02067 #define MTOUCH_LETTER_SENSOR28 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR28)
02068 #define MTOUCH_LETTER_SENSOR29 __paste5(MTOUCH_LETTER_,MTOUCH_SENSOR29)
02069
02070 #define MTOUCH_PORT_C_SENSOR0 __paste4(R,MTOUCH_LETTER_SENSOR0)
02071 #define MTOUCH_PORT_C_SENSOR1 __paste4(R,MTOUCH_LETTER_SENSOR1)
02072 #define MTOUCH_PORT_C_SENSOR2 __paste4(R,MTOUCH_LETTER_SENSOR2)
02073 #define MTOUCH_PORT_C_SENSOR3 __paste4(R,MTOUCH_LETTER_SENSOR3)
02074 #define MTOUCH_PORT_C_SENSOR4 __paste4(R,MTOUCH_LETTER_SENSOR4)
02075 #define MTOUCH_PORT_C_SENSOR5 __paste4(R,MTOUCH_LETTER_SENSOR5)
02076 #define MTOUCH_PORT_C_SENSOR6 __paste4(R,MTOUCH_LETTER_SENSOR6)
02077 #define MTOUCH_PORT_C_SENSOR7 __paste4(R,MTOUCH_LETTER_SENSOR7)
02078 #define MTOUCH_PORT_C_SENSOR8 __paste4(R,MTOUCH_LETTER_SENSOR8)
02079 #define MTOUCH_PORT_C_SENSOR9 __paste4(R,MTOUCH_LETTER_SENSOR9)
02080 #define MTOUCH_PORT_C_SENSOR10 __paste4(R,MTOUCH_LETTER_SENSOR10)
02081 #define MTOUCH_PORT_C_SENSOR11 __paste4(R,MTOUCH_LETTER_SENSOR11)
02082 #define MTOUCH_PORT_C_SENSOR12 __paste4(R,MTOUCH_LETTER_SENSOR12)
02083 #define MTOUCH_PORT_C_SENSOR13 __paste4(R,MTOUCH_LETTER_SENSOR13)
02084 #define MTOUCH_PORT_C_SENSOR14 __paste4(R,MTOUCH_LETTER_SENSOR14)
02085 #define MTOUCH_PORT_C_SENSOR15 __paste4(R,MTOUCH_LETTER_SENSOR15)
02086 #define MTOUCH_PORT_C_SENSOR16 __paste4(R,MTOUCH_LETTER_SENSOR16)
02087 #define MTOUCH_PORT_C_SENSOR17 __paste4(R,MTOUCH_LETTER_SENSOR17)
02088 #define MTOUCH_PORT_C_SENSOR18 __paste4(R,MTOUCH_LETTER_SENSOR18)
02089 #define MTOUCH_PORT_C_SENSOR19 __paste4(R,MTOUCH_LETTER_SENSOR19)
02090 #define MTOUCH_PORT_C_SENSOR20 __paste4(R,MTOUCH_LETTER_SENSOR20)
02091 #define MTOUCH_PORT_C_SENSOR21 __paste4(R,MTOUCH_LETTER_SENSOR21)
02092 #define MTOUCH_PORT_C_SENSOR22 __paste4(R,MTOUCH_LETTER_SENSOR22)
02093 #define MTOUCH_PORT_C_SENSOR23 __paste4(R,MTOUCH_LETTER_SENSOR23)
02094 #define MTOUCH_PORT_C_SENSOR24 __paste4(R,MTOUCH_LETTER_SENSOR24)
02095 #define MTOUCH_PORT_C_SENSOR25 __paste4(R,MTOUCH_LETTER_SENSOR25)
02096 #define MTOUCH_PORT_C_SENSOR26 __paste4(R,MTOUCH_LETTER_SENSOR26)
02097 #define MTOUCH_PORT_C_SENSOR27 __paste4(R,MTOUCH_LETTER_SENSOR27)
02098 #define MTOUCH_PORT_C_SENSOR28 __paste4(R,MTOUCH_LETTER_SENSOR28)
02099 #define MTOUCH_PORT_C_SENSOR29 __paste4(R,MTOUCH_LETTER_SENSOR29)
02100 #define MTOUCH_PORT_C_SENSOR(index) __paste3(MTOUCH_PORT_C_SENSOR, index)
02101
02102 #define MTOUCH_PORT_ASM_SENSOR0 __paste4(_R,MTOUCH_LETTER_SENSOR0)
02103 #define MTOUCH_PORT_ASM_SENSOR1 __paste4(_R,MTOUCH_LETTER_SENSOR1)
02104 #define MTOUCH_PORT_ASM_SENSOR2 __paste4(_R,MTOUCH_LETTER_SENSOR2)
02105 #define MTOUCH_PORT_ASM_SENSOR3 __paste4(_R,MTOUCH_LETTER_SENSOR3)
02106 #define MTOUCH_PORT_ASM_SENSOR4 __paste4(_R,MTOUCH_LETTER_SENSOR4)
02107 #define MTOUCH_PORT_ASM_SENSOR5 __paste4(_R,MTOUCH_LETTER_SENSOR5)
02108 #define MTOUCH_PORT_ASM_SENSOR6 __paste4(_R,MTOUCH_LETTER_SENSOR6)
02109 #define MTOUCH_PORT_ASM_SENSOR7 __paste4(_R,MTOUCH_LETTER_SENSOR7)
02110 #define MTOUCH_PORT_ASM_SENSOR8 __paste4(_R,MTOUCH_LETTER_SENSOR8)
02111 #define MTOUCH_PORT_ASM_SENSOR9 __paste4(_R,MTOUCH_LETTER_SENSOR9)
02112 #define MTOUCH_PORT_ASM_SENSOR10 __paste4(_R,MTOUCH_LETTER_SENSOR10)
02113 #define MTOUCH_PORT_ASM_SENSOR11 __paste4(_R,MTOUCH_LETTER_SENSOR11)
02114 #define MTOUCH_PORT_ASM_SENSOR12 __paste4(_R,MTOUCH_LETTER_SENSOR12)
02115 #define MTOUCH_PORT_ASM_SENSOR13 __paste4(_R,MTOUCH_LETTER_SENSOR13)
02116 #define MTOUCH_PORT_ASM_SENSOR14 __paste4(_R,MTOUCH_LETTER_SENSOR14)
02117 #define MTOUCH_PORT_ASM_SENSOR15 __paste4(_R,MTOUCH_LETTER_SENSOR15)
02118 #define MTOUCH_PORT_ASM_SENSOR16 __paste4(_R,MTOUCH_LETTER_SENSOR16)
02119 #define MTOUCH_PORT_ASM_SENSOR17 __paste4(_R,MTOUCH_LETTER_SENSOR17)
02120 #define MTOUCH_PORT_ASM_SENSOR18 __paste4(_R,MTOUCH_LETTER_SENSOR18)
02121 #define MTOUCH_PORT_ASM_SENSOR19 __paste4(_R,MTOUCH_LETTER_SENSOR19)
02122 #define MTOUCH_PORT_ASM_SENSOR20 __paste4(_R,MTOUCH_LETTER_SENSOR20)
02123 #define MTOUCH_PORT_ASM_SENSOR21 __paste4(_R,MTOUCH_LETTER_SENSOR21)
02124 #define MTOUCH_PORT_ASM_SENSOR22 __paste4(_R,MTOUCH_LETTER_SENSOR22)
02125 #define MTOUCH_PORT_ASM_SENSOR23 __paste4(_R,MTOUCH_LETTER_SENSOR23)
02126 #define MTOUCH_PORT_ASM_SENSOR24 __paste4(_R,MTOUCH_LETTER_SENSOR24)
02127 #define MTOUCH_PORT_ASM_SENSOR25 __paste4(_R,MTOUCH_LETTER_SENSOR25)
02128 #define MTOUCH_PORT_ASM_SENSOR26 __paste4(_R,MTOUCH_LETTER_SENSOR26)
02129 #define MTOUCH_PORT_ASM_SENSOR27 __paste4(_R,MTOUCH_LETTER_SENSOR27)
02130 #define MTOUCH_PORT_ASM_SENSOR28 __paste4(_R,MTOUCH_LETTER_SENSOR28)
02131 #define MTOUCH_PORT_ASM_SENSOR29 __paste4(_R,MTOUCH_LETTER_SENSOR29)
02132 #define MTOUCH_PORT_ASM_SENSOR(index) __paste3(MTOUCH_PORT_ASM_SENSOR, index)
02133 #endif
02134
02135
02136
02137 #if defined(MTOUCH_USE_PORT)
02138 #define MTOUCH_LAT_C_SENSOR0 __paste4(PORT,MTOUCH_LETTER_SENSOR0)
02139 #define MTOUCH_LAT_C_SENSOR1 __paste4(PORT,MTOUCH_LETTER_SENSOR1)
02140 #define MTOUCH_LAT_C_SENSOR2 __paste4(PORT,MTOUCH_LETTER_SENSOR2)
02141 #define MTOUCH_LAT_C_SENSOR3 __paste4(PORT,MTOUCH_LETTER_SENSOR3)
02142 #define MTOUCH_LAT_C_SENSOR4 __paste4(PORT,MTOUCH_LETTER_SENSOR4)
02143 #define MTOUCH_LAT_C_SENSOR5 __paste4(PORT,MTOUCH_LETTER_SENSOR5)
02144 #define MTOUCH_LAT_C_SENSOR6 __paste4(PORT,MTOUCH_LETTER_SENSOR6)
02145 #define MTOUCH_LAT_C_SENSOR7 __paste4(PORT,MTOUCH_LETTER_SENSOR7)
02146 #define MTOUCH_LAT_C_SENSOR8 __paste4(PORT,MTOUCH_LETTER_SENSOR8)
02147 #define MTOUCH_LAT_C_SENSOR9 __paste4(PORT,MTOUCH_LETTER_SENSOR9)
02148 #define MTOUCH_LAT_C_SENSOR10 __paste4(PORT,MTOUCH_LETTER_SENSOR10)
02149 #define MTOUCH_LAT_C_SENSOR11 __paste4(PORT,MTOUCH_LETTER_SENSOR11)
02150 #define MTOUCH_LAT_C_SENSOR12 __paste4(PORT,MTOUCH_LETTER_SENSOR12)
02151 #define MTOUCH_LAT_C_SENSOR13 __paste4(PORT,MTOUCH_LETTER_SENSOR13)
02152 #define MTOUCH_LAT_C_SENSOR14 __paste4(PORT,MTOUCH_LETTER_SENSOR14)
02153 #define MTOUCH_LAT_C_SENSOR15 __paste4(PORT,MTOUCH_LETTER_SENSOR15)
02154 #define MTOUCH_LAT_C_SENSOR16 __paste4(PORT,MTOUCH_LETTER_SENSOR16)
02155 #define MTOUCH_LAT_C_SENSOR17 __paste4(PORT,MTOUCH_LETTER_SENSOR17)
02156 #define MTOUCH_LAT_C_SENSOR18 __paste4(PORT,MTOUCH_LETTER_SENSOR18)
02157 #define MTOUCH_LAT_C_SENSOR19 __paste4(PORT,MTOUCH_LETTER_SENSOR19)
02158 #define MTOUCH_LAT_C_SENSOR20 __paste4(PORT,MTOUCH_LETTER_SENSOR20)
02159 #define MTOUCH_LAT_C_SENSOR21 __paste4(PORT,MTOUCH_LETTER_SENSOR21)
02160 #define MTOUCH_LAT_C_SENSOR22 __paste4(PORT,MTOUCH_LETTER_SENSOR22)
02161 #define MTOUCH_LAT_C_SENSOR23 __paste4(PORT,MTOUCH_LETTER_SENSOR23)
02162 #define MTOUCH_LAT_C_SENSOR24 __paste4(PORT,MTOUCH_LETTER_SENSOR24)
02163 #define MTOUCH_LAT_C_SENSOR25 __paste4(PORT,MTOUCH_LETTER_SENSOR25)
02164 #define MTOUCH_LAT_C_SENSOR26 __paste4(PORT,MTOUCH_LETTER_SENSOR26)
02165 #define MTOUCH_LAT_C_SENSOR27 __paste4(PORT,MTOUCH_LETTER_SENSOR27)
02166 #define MTOUCH_LAT_C_SENSOR28 __paste4(PORT,MTOUCH_LETTER_SENSOR28)
02167 #define MTOUCH_LAT_C_SENSOR29 __paste4(PORT,MTOUCH_LETTER_SENSOR29)
02168 #define MTOUCH_LAT_C_SENSOR(index) __paste3(MTOUCH_LAT_C_SENSOR, index)
02169
02170 #define MTOUCH_LAT_ASM_SENSOR0 __paste4(_PORT,MTOUCH_LETTER_SENSOR0)
02171 #define MTOUCH_LAT_ASM_SENSOR1 __paste4(_PORT,MTOUCH_LETTER_SENSOR1)
02172 #define MTOUCH_LAT_ASM_SENSOR2 __paste4(_PORT,MTOUCH_LETTER_SENSOR2)
02173 #define MTOUCH_LAT_ASM_SENSOR3 __paste4(_PORT,MTOUCH_LETTER_SENSOR3)
02174 #define MTOUCH_LAT_ASM_SENSOR4 __paste4(_PORT,MTOUCH_LETTER_SENSOR4)
02175 #define MTOUCH_LAT_ASM_SENSOR5 __paste4(_PORT,MTOUCH_LETTER_SENSOR5)
02176 #define MTOUCH_LAT_ASM_SENSOR6 __paste4(_PORT,MTOUCH_LETTER_SENSOR6)
02177 #define MTOUCH_LAT_ASM_SENSOR7 __paste4(_PORT,MTOUCH_LETTER_SENSOR7)
02178 #define MTOUCH_LAT_ASM_SENSOR8 __paste4(_PORT,MTOUCH_LETTER_SENSOR8)
02179 #define MTOUCH_LAT_ASM_SENSOR9 __paste4(_PORT,MTOUCH_LETTER_SENSOR9)
02180 #define MTOUCH_LAT_ASM_SENSOR10 __paste4(_PORT,MTOUCH_LETTER_SENSOR10)
02181 #define MTOUCH_LAT_ASM_SENSOR11 __paste4(_PORT,MTOUCH_LETTER_SENSOR11)
02182 #define MTOUCH_LAT_ASM_SENSOR12 __paste4(_PORT,MTOUCH_LETTER_SENSOR12)
02183 #define MTOUCH_LAT_ASM_SENSOR13 __paste4(_PORT,MTOUCH_LETTER_SENSOR13)
02184 #define MTOUCH_LAT_ASM_SENSOR14 __paste4(_PORT,MTOUCH_LETTER_SENSOR14)
02185 #define MTOUCH_LAT_ASM_SENSOR15 __paste4(_PORT,MTOUCH_LETTER_SENSOR15)
02186 #define MTOUCH_LAT_ASM_SENSOR16 __paste4(_PORT,MTOUCH_LETTER_SENSOR16)
02187 #define MTOUCH_LAT_ASM_SENSOR17 __paste4(_PORT,MTOUCH_LETTER_SENSOR17)
02188 #define MTOUCH_LAT_ASM_SENSOR18 __paste4(_PORT,MTOUCH_LETTER_SENSOR18)
02189 #define MTOUCH_LAT_ASM_SENSOR19 __paste4(_PORT,MTOUCH_LETTER_SENSOR19)
02190 #define MTOUCH_LAT_ASM_SENSOR20 __paste4(_PORT,MTOUCH_LETTER_SENSOR20)
02191 #define MTOUCH_LAT_ASM_SENSOR21 __paste4(_PORT,MTOUCH_LETTER_SENSOR21)
02192 #define MTOUCH_LAT_ASM_SENSOR22 __paste4(_PORT,MTOUCH_LETTER_SENSOR22)
02193 #define MTOUCH_LAT_ASM_SENSOR23 __paste4(_PORT,MTOUCH_LETTER_SENSOR23)
02194 #define MTOUCH_LAT_ASM_SENSOR24 __paste4(_PORT,MTOUCH_LETTER_SENSOR24)
02195 #define MTOUCH_LAT_ASM_SENSOR25 __paste4(_PORT,MTOUCH_LETTER_SENSOR25)
02196 #define MTOUCH_LAT_ASM_SENSOR26 __paste4(_PORT,MTOUCH_LETTER_SENSOR26)
02197 #define MTOUCH_LAT_ASM_SENSOR27 __paste4(_PORT,MTOUCH_LETTER_SENSOR27)
02198 #define MTOUCH_LAT_ASM_SENSOR28 __paste4(_PORT,MTOUCH_LETTER_SENSOR28)
02199 #define MTOUCH_LAT_ASM_SENSOR29 __paste4(_PORT,MTOUCH_LETTER_SENSOR29)
02200 #define MTOUCH_LAT_ASM_SENSOR(index) __paste3(MTOUCH_LAT_ASM_SENSOR, index)
02201 #elif !defined(MTOUCH_USE_GPIO)
02202 #define MTOUCH_LAT_C_SENSOR0 __paste4(LAT,MTOUCH_LETTER_SENSOR0)
02203 #define MTOUCH_LAT_C_SENSOR1 __paste4(LAT,MTOUCH_LETTER_SENSOR1)
02204 #define MTOUCH_LAT_C_SENSOR2 __paste4(LAT,MTOUCH_LETTER_SENSOR2)
02205 #define MTOUCH_LAT_C_SENSOR3 __paste4(LAT,MTOUCH_LETTER_SENSOR3)
02206 #define MTOUCH_LAT_C_SENSOR4 __paste4(LAT,MTOUCH_LETTER_SENSOR4)
02207 #define MTOUCH_LAT_C_SENSOR5 __paste4(LAT,MTOUCH_LETTER_SENSOR5)
02208 #define MTOUCH_LAT_C_SENSOR6 __paste4(LAT,MTOUCH_LETTER_SENSOR6)
02209 #define MTOUCH_LAT_C_SENSOR7 __paste4(LAT,MTOUCH_LETTER_SENSOR7)
02210 #define MTOUCH_LAT_C_SENSOR8 __paste4(LAT,MTOUCH_LETTER_SENSOR8)
02211 #define MTOUCH_LAT_C_SENSOR9 __paste4(LAT,MTOUCH_LETTER_SENSOR9)
02212 #define MTOUCH_LAT_C_SENSOR10 __paste4(LAT,MTOUCH_LETTER_SENSOR10)
02213 #define MTOUCH_LAT_C_SENSOR11 __paste4(LAT,MTOUCH_LETTER_SENSOR11)
02214 #define MTOUCH_LAT_C_SENSOR12 __paste4(LAT,MTOUCH_LETTER_SENSOR12)
02215 #define MTOUCH_LAT_C_SENSOR13 __paste4(LAT,MTOUCH_LETTER_SENSOR13)
02216 #define MTOUCH_LAT_C_SENSOR14 __paste4(LAT,MTOUCH_LETTER_SENSOR14)
02217 #define MTOUCH_LAT_C_SENSOR15 __paste4(LAT,MTOUCH_LETTER_SENSOR15)
02218 #define MTOUCH_LAT_C_SENSOR16 __paste4(LAT,MTOUCH_LETTER_SENSOR16)
02219 #define MTOUCH_LAT_C_SENSOR17 __paste4(LAT,MTOUCH_LETTER_SENSOR17)
02220 #define MTOUCH_LAT_C_SENSOR18 __paste4(LAT,MTOUCH_LETTER_SENSOR18)
02221 #define MTOUCH_LAT_C_SENSOR19 __paste4(LAT,MTOUCH_LETTER_SENSOR19)
02222 #define MTOUCH_LAT_C_SENSOR20 __paste4(LAT,MTOUCH_LETTER_SENSOR20)
02223 #define MTOUCH_LAT_C_SENSOR21 __paste4(LAT,MTOUCH_LETTER_SENSOR21)
02224 #define MTOUCH_LAT_C_SENSOR22 __paste4(LAT,MTOUCH_LETTER_SENSOR22)
02225 #define MTOUCH_LAT_C_SENSOR23 __paste4(LAT,MTOUCH_LETTER_SENSOR23)
02226 #define MTOUCH_LAT_C_SENSOR24 __paste4(LAT,MTOUCH_LETTER_SENSOR24)
02227 #define MTOUCH_LAT_C_SENSOR25 __paste4(LAT,MTOUCH_LETTER_SENSOR25)
02228 #define MTOUCH_LAT_C_SENSOR26 __paste4(LAT,MTOUCH_LETTER_SENSOR26)
02229 #define MTOUCH_LAT_C_SENSOR27 __paste4(LAT,MTOUCH_LETTER_SENSOR27)
02230 #define MTOUCH_LAT_C_SENSOR28 __paste4(LAT,MTOUCH_LETTER_SENSOR28)
02231 #define MTOUCH_LAT_C_SENSOR29 __paste4(LAT,MTOUCH_LETTER_SENSOR29)
02232 #define MTOUCH_LAT_C_SENSOR(index) __paste3(MTOUCH_LAT_C_SENSOR, index)
02233
02234 #define MTOUCH_LAT_ASM_SENSOR0 __paste4(_LAT,MTOUCH_LETTER_SENSOR0)
02235 #define MTOUCH_LAT_ASM_SENSOR1 __paste4(_LAT,MTOUCH_LETTER_SENSOR1)
02236 #define MTOUCH_LAT_ASM_SENSOR2 __paste4(_LAT,MTOUCH_LETTER_SENSOR2)
02237 #define MTOUCH_LAT_ASM_SENSOR3 __paste4(_LAT,MTOUCH_LETTER_SENSOR3)
02238 #define MTOUCH_LAT_ASM_SENSOR4 __paste4(_LAT,MTOUCH_LETTER_SENSOR4)
02239 #define MTOUCH_LAT_ASM_SENSOR5 __paste4(_LAT,MTOUCH_LETTER_SENSOR5)
02240 #define MTOUCH_LAT_ASM_SENSOR6 __paste4(_LAT,MTOUCH_LETTER_SENSOR6)
02241 #define MTOUCH_LAT_ASM_SENSOR7 __paste4(_LAT,MTOUCH_LETTER_SENSOR7)
02242 #define MTOUCH_LAT_ASM_SENSOR8 __paste4(_LAT,MTOUCH_LETTER_SENSOR8)
02243 #define MTOUCH_LAT_ASM_SENSOR9 __paste4(_LAT,MTOUCH_LETTER_SENSOR9)
02244 #define MTOUCH_LAT_ASM_SENSOR10 __paste4(_LAT,MTOUCH_LETTER_SENSOR10)
02245 #define MTOUCH_LAT_ASM_SENSOR11 __paste4(_LAT,MTOUCH_LETTER_SENSOR11)
02246 #define MTOUCH_LAT_ASM_SENSOR12 __paste4(_LAT,MTOUCH_LETTER_SENSOR12)
02247 #define MTOUCH_LAT_ASM_SENSOR13 __paste4(_LAT,MTOUCH_LETTER_SENSOR13)
02248 #define MTOUCH_LAT_ASM_SENSOR14 __paste4(_LAT,MTOUCH_LETTER_SENSOR14)
02249 #define MTOUCH_LAT_ASM_SENSOR15 __paste4(_LAT,MTOUCH_LETTER_SENSOR15)
02250 #define MTOUCH_LAT_ASM_SENSOR16 __paste4(_LAT,MTOUCH_LETTER_SENSOR16)
02251 #define MTOUCH_LAT_ASM_SENSOR17 __paste4(_LAT,MTOUCH_LETTER_SENSOR17)
02252 #define MTOUCH_LAT_ASM_SENSOR18 __paste4(_LAT,MTOUCH_LETTER_SENSOR18)
02253 #define MTOUCH_LAT_ASM_SENSOR19 __paste4(_LAT,MTOUCH_LETTER_SENSOR19)
02254 #define MTOUCH_LAT_ASM_SENSOR20 __paste4(_LAT,MTOUCH_LETTER_SENSOR20)
02255 #define MTOUCH_LAT_ASM_SENSOR21 __paste4(_LAT,MTOUCH_LETTER_SENSOR21)
02256 #define MTOUCH_LAT_ASM_SENSOR22 __paste4(_LAT,MTOUCH_LETTER_SENSOR22)
02257 #define MTOUCH_LAT_ASM_SENSOR23 __paste4(_LAT,MTOUCH_LETTER_SENSOR23)
02258 #define MTOUCH_LAT_ASM_SENSOR24 __paste4(_LAT,MTOUCH_LETTER_SENSOR24)
02259 #define MTOUCH_LAT_ASM_SENSOR25 __paste4(_LAT,MTOUCH_LETTER_SENSOR25)
02260 #define MTOUCH_LAT_ASM_SENSOR26 __paste4(_LAT,MTOUCH_LETTER_SENSOR26)
02261 #define MTOUCH_LAT_ASM_SENSOR27 __paste4(_LAT,MTOUCH_LETTER_SENSOR27)
02262 #define MTOUCH_LAT_ASM_SENSOR28 __paste4(_LAT,MTOUCH_LETTER_SENSOR28)
02263 #define MTOUCH_LAT_ASM_SENSOR29 __paste4(_LAT,MTOUCH_LETTER_SENSOR29)
02264 #define MTOUCH_LAT_ASM_SENSOR(index) __paste3(MTOUCH_LAT_ASM_SENSOR, index)
02265 #endif
02266
02267 #define MTOUCH_TRIS_C_SENSOR0 __paste4(TRIS,MTOUCH_LETTER_SENSOR0)
02268 #define MTOUCH_TRIS_C_SENSOR1 __paste4(TRIS,MTOUCH_LETTER_SENSOR1)
02269 #define MTOUCH_TRIS_C_SENSOR2 __paste4(TRIS,MTOUCH_LETTER_SENSOR2)
02270 #define MTOUCH_TRIS_C_SENSOR3 __paste4(TRIS,MTOUCH_LETTER_SENSOR3)
02271 #define MTOUCH_TRIS_C_SENSOR4 __paste4(TRIS,MTOUCH_LETTER_SENSOR4)
02272 #define MTOUCH_TRIS_C_SENSOR5 __paste4(TRIS,MTOUCH_LETTER_SENSOR5)
02273 #define MTOUCH_TRIS_C_SENSOR6 __paste4(TRIS,MTOUCH_LETTER_SENSOR6)
02274 #define MTOUCH_TRIS_C_SENSOR7 __paste4(TRIS,MTOUCH_LETTER_SENSOR7)
02275 #define MTOUCH_TRIS_C_SENSOR8 __paste4(TRIS,MTOUCH_LETTER_SENSOR8)
02276 #define MTOUCH_TRIS_C_SENSOR9 __paste4(TRIS,MTOUCH_LETTER_SENSOR9)
02277 #define MTOUCH_TRIS_C_SENSOR10 __paste4(TRIS,MTOUCH_LETTER_SENSOR10)
02278 #define MTOUCH_TRIS_C_SENSOR11 __paste4(TRIS,MTOUCH_LETTER_SENSOR11)
02279 #define MTOUCH_TRIS_C_SENSOR12 __paste4(TRIS,MTOUCH_LETTER_SENSOR12)
02280 #define MTOUCH_TRIS_C_SENSOR13 __paste4(TRIS,MTOUCH_LETTER_SENSOR13)
02281 #define MTOUCH_TRIS_C_SENSOR14 __paste4(TRIS,MTOUCH_LETTER_SENSOR14)
02282 #define MTOUCH_TRIS_C_SENSOR15 __paste4(TRIS,MTOUCH_LETTER_SENSOR15)
02283 #define MTOUCH_TRIS_C_SENSOR16 __paste4(TRIS,MTOUCH_LETTER_SENSOR16)
02284 #define MTOUCH_TRIS_C_SENSOR17 __paste4(TRIS,MTOUCH_LETTER_SENSOR17)
02285 #define MTOUCH_TRIS_C_SENSOR18 __paste4(TRIS,MTOUCH_LETTER_SENSOR18)
02286 #define MTOUCH_TRIS_C_SENSOR19 __paste4(TRIS,MTOUCH_LETTER_SENSOR19)
02287 #define MTOUCH_TRIS_C_SENSOR20 __paste4(TRIS,MTOUCH_LETTER_SENSOR20)
02288 #define MTOUCH_TRIS_C_SENSOR21 __paste4(TRIS,MTOUCH_LETTER_SENSOR21)
02289 #define MTOUCH_TRIS_C_SENSOR22 __paste4(TRIS,MTOUCH_LETTER_SENSOR22)
02290 #define MTOUCH_TRIS_C_SENSOR23 __paste4(TRIS,MTOUCH_LETTER_SENSOR23)
02291 #define MTOUCH_TRIS_C_SENSOR24 __paste4(TRIS,MTOUCH_LETTER_SENSOR24)
02292 #define MTOUCH_TRIS_C_SENSOR25 __paste4(TRIS,MTOUCH_LETTER_SENSOR25)
02293 #define MTOUCH_TRIS_C_SENSOR26 __paste4(TRIS,MTOUCH_LETTER_SENSOR26)
02294 #define MTOUCH_TRIS_C_SENSOR27 __paste4(TRIS,MTOUCH_LETTER_SENSOR27)
02295 #define MTOUCH_TRIS_C_SENSOR28 __paste4(TRIS,MTOUCH_LETTER_SENSOR28)
02296 #define MTOUCH_TRIS_C_SENSOR29 __paste4(TRIS,MTOUCH_LETTER_SENSOR29)
02297 #define MTOUCH_TRIS_C_SENSOR(index) __paste3(MTOUCH_TRIS_C_SENSOR, index)
02298
02299 #define MTOUCH_TRIS_ASM_SENSOR0 __paste4(_TRIS,MTOUCH_LETTER_SENSOR0)
02300 #define MTOUCH_TRIS_ASM_SENSOR1 __paste4(_TRIS,MTOUCH_LETTER_SENSOR1)
02301 #define MTOUCH_TRIS_ASM_SENSOR2 __paste4(_TRIS,MTOUCH_LETTER_SENSOR2)
02302 #define MTOUCH_TRIS_ASM_SENSOR3 __paste4(_TRIS,MTOUCH_LETTER_SENSOR3)
02303 #define MTOUCH_TRIS_ASM_SENSOR4 __paste4(_TRIS,MTOUCH_LETTER_SENSOR4)
02304 #define MTOUCH_TRIS_ASM_SENSOR5 __paste4(_TRIS,MTOUCH_LETTER_SENSOR5)
02305 #define MTOUCH_TRIS_ASM_SENSOR6 __paste4(_TRIS,MTOUCH_LETTER_SENSOR6)
02306 #define MTOUCH_TRIS_ASM_SENSOR7 __paste4(_TRIS,MTOUCH_LETTER_SENSOR7)
02307 #define MTOUCH_TRIS_ASM_SENSOR8 __paste4(_TRIS,MTOUCH_LETTER_SENSOR8)
02308 #define MTOUCH_TRIS_ASM_SENSOR9 __paste4(_TRIS,MTOUCH_LETTER_SENSOR9)
02309 #define MTOUCH_TRIS_ASM_SENSOR10 __paste4(_TRIS,MTOUCH_LETTER_SENSOR10)
02310 #define MTOUCH_TRIS_ASM_SENSOR11 __paste4(_TRIS,MTOUCH_LETTER_SENSOR11)
02311 #define MTOUCH_TRIS_ASM_SENSOR12 __paste4(_TRIS,MTOUCH_LETTER_SENSOR12)
02312 #define MTOUCH_TRIS_ASM_SENSOR13 __paste4(_TRIS,MTOUCH_LETTER_SENSOR13)
02313 #define MTOUCH_TRIS_ASM_SENSOR14 __paste4(_TRIS,MTOUCH_LETTER_SENSOR14)
02314 #define MTOUCH_TRIS_ASM_SENSOR15 __paste4(_TRIS,MTOUCH_LETTER_SENSOR15)
02315 #define MTOUCH_TRIS_ASM_SENSOR16 __paste4(_TRIS,MTOUCH_LETTER_SENSOR16)
02316 #define MTOUCH_TRIS_ASM_SENSOR17 __paste4(_TRIS,MTOUCH_LETTER_SENSOR17)
02317 #define MTOUCH_TRIS_ASM_SENSOR18 __paste4(_TRIS,MTOUCH_LETTER_SENSOR18)
02318 #define MTOUCH_TRIS_ASM_SENSOR19 __paste4(_TRIS,MTOUCH_LETTER_SENSOR19)
02319 #define MTOUCH_TRIS_ASM_SENSOR20 __paste4(_TRIS,MTOUCH_LETTER_SENSOR20)
02320 #define MTOUCH_TRIS_ASM_SENSOR21 __paste4(_TRIS,MTOUCH_LETTER_SENSOR21)
02321 #define MTOUCH_TRIS_ASM_SENSOR22 __paste4(_TRIS,MTOUCH_LETTER_SENSOR22)
02322 #define MTOUCH_TRIS_ASM_SENSOR23 __paste4(_TRIS,MTOUCH_LETTER_SENSOR23)
02323 #define MTOUCH_TRIS_ASM_SENSOR24 __paste4(_TRIS,MTOUCH_LETTER_SENSOR24)
02324 #define MTOUCH_TRIS_ASM_SENSOR25 __paste4(_TRIS,MTOUCH_LETTER_SENSOR25)
02325 #define MTOUCH_TRIS_ASM_SENSOR26 __paste4(_TRIS,MTOUCH_LETTER_SENSOR26)
02326 #define MTOUCH_TRIS_ASM_SENSOR27 __paste4(_TRIS,MTOUCH_LETTER_SENSOR27)
02327 #define MTOUCH_TRIS_ASM_SENSOR28 __paste4(_TRIS,MTOUCH_LETTER_SENSOR28)
02328 #define MTOUCH_TRIS_ASM_SENSOR29 __paste4(_TRIS,MTOUCH_LETTER_SENSOR29)
02329 #define MTOUCH_TRIS_ASM_SENSOR(index) __paste3(MTOUCH_TRIS_ASM_SENSOR, index)
02330
02331 #define MTOUCH_PIN_SENSOR0 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR0)
02332 #define MTOUCH_PIN_SENSOR1 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR1)
02333 #define MTOUCH_PIN_SENSOR2 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR2)
02334 #define MTOUCH_PIN_SENSOR3 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR3)
02335 #define MTOUCH_PIN_SENSOR4 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR4)
02336 #define MTOUCH_PIN_SENSOR5 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR5)
02337 #define MTOUCH_PIN_SENSOR6 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR6)
02338 #define MTOUCH_PIN_SENSOR7 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR7)
02339 #define MTOUCH_PIN_SENSOR8 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR8)
02340 #define MTOUCH_PIN_SENSOR9 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR9)
02341 #define MTOUCH_PIN_SENSOR10 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR10)
02342 #define MTOUCH_PIN_SENSOR11 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR11)
02343 #define MTOUCH_PIN_SENSOR12 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR12)
02344 #define MTOUCH_PIN_SENSOR13 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR13)
02345 #define MTOUCH_PIN_SENSOR14 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR14)
02346 #define MTOUCH_PIN_SENSOR15 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR15)
02347 #define MTOUCH_PIN_SENSOR16 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR16)
02348 #define MTOUCH_PIN_SENSOR17 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR17)
02349 #define MTOUCH_PIN_SENSOR18 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR18)
02350 #define MTOUCH_PIN_SENSOR19 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR19)
02351 #define MTOUCH_PIN_SENSOR20 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR20)
02352 #define MTOUCH_PIN_SENSOR21 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR21)
02353 #define MTOUCH_PIN_SENSOR22 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR22)
02354 #define MTOUCH_PIN_SENSOR23 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR23)
02355 #define MTOUCH_PIN_SENSOR24 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR24)
02356 #define MTOUCH_PIN_SENSOR25 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR25)
02357 #define MTOUCH_PIN_SENSOR26 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR26)
02358 #define MTOUCH_PIN_SENSOR27 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR27)
02359 #define MTOUCH_PIN_SENSOR28 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR28)
02360 #define MTOUCH_PIN_SENSOR29 __paste4(MTOUCH_PIN_,MTOUCH_SENSOR29)
02361 #define MTOUCH_PIN_REFERENCE __paste4(MTOUCH_PIN_,CVD_REFERENCE)
02362 #define MTOUCH_PIN_SENSOR(index) __paste3(MTOUCH_PIN_SENSOR, index)
02363
02364 #define MTOUCH_SELECT_SENSOR0 __paste4(MTOUCH_AD_, MTOUCH_SENSOR0)
02365 #define MTOUCH_SELECT_SENSOR1 __paste4(MTOUCH_AD_, MTOUCH_SENSOR1)
02366 #define MTOUCH_SELECT_SENSOR2 __paste4(MTOUCH_AD_, MTOUCH_SENSOR2)
02367 #define MTOUCH_SELECT_SENSOR3 __paste4(MTOUCH_AD_, MTOUCH_SENSOR3)
02368 #define MTOUCH_SELECT_SENSOR4 __paste4(MTOUCH_AD_, MTOUCH_SENSOR4)
02369 #define MTOUCH_SELECT_SENSOR5 __paste4(MTOUCH_AD_, MTOUCH_SENSOR5)
02370 #define MTOUCH_SELECT_SENSOR6 __paste4(MTOUCH_AD_, MTOUCH_SENSOR6)
02371 #define MTOUCH_SELECT_SENSOR7 __paste4(MTOUCH_AD_, MTOUCH_SENSOR7)
02372 #define MTOUCH_SELECT_SENSOR8 __paste4(MTOUCH_AD_, MTOUCH_SENSOR8)
02373 #define MTOUCH_SELECT_SENSOR9 __paste4(MTOUCH_AD_, MTOUCH_SENSOR9)
02374 #define MTOUCH_SELECT_SENSOR10 __paste4(MTOUCH_AD_, MTOUCH_SENSOR10)
02375 #define MTOUCH_SELECT_SENSOR11 __paste4(MTOUCH_AD_, MTOUCH_SENSOR11)
02376 #define MTOUCH_SELECT_SENSOR12 __paste4(MTOUCH_AD_, MTOUCH_SENSOR12)
02377 #define MTOUCH_SELECT_SENSOR13 __paste4(MTOUCH_AD_, MTOUCH_SENSOR13)
02378 #define MTOUCH_SELECT_SENSOR14 __paste4(MTOUCH_AD_, MTOUCH_SENSOR14)
02379 #define MTOUCH_SELECT_SENSOR15 __paste4(MTOUCH_AD_, MTOUCH_SENSOR15)
02380 #define MTOUCH_SELECT_SENSOR16 __paste4(MTOUCH_AD_, MTOUCH_SENSOR16)
02381 #define MTOUCH_SELECT_SENSOR17 __paste4(MTOUCH_AD_, MTOUCH_SENSOR17)
02382 #define MTOUCH_SELECT_SENSOR18 __paste4(MTOUCH_AD_, MTOUCH_SENSOR18)
02383 #define MTOUCH_SELECT_SENSOR19 __paste4(MTOUCH_AD_, MTOUCH_SENSOR19)
02384 #define MTOUCH_SELECT_SENSOR20 __paste4(MTOUCH_AD_, MTOUCH_SENSOR20)
02385 #define MTOUCH_SELECT_SENSOR21 __paste4(MTOUCH_AD_, MTOUCH_SENSOR21)
02386 #define MTOUCH_SELECT_SENSOR22 __paste4(MTOUCH_AD_, MTOUCH_SENSOR22)
02387 #define MTOUCH_SELECT_SENSOR23 __paste4(MTOUCH_AD_, MTOUCH_SENSOR23)
02388 #define MTOUCH_SELECT_SENSOR24 __paste4(MTOUCH_AD_, MTOUCH_SENSOR24)
02389 #define MTOUCH_SELECT_SENSOR25 __paste4(MTOUCH_AD_, MTOUCH_SENSOR25)
02390 #define MTOUCH_SELECT_SENSOR26 __paste4(MTOUCH_AD_, MTOUCH_SENSOR26)
02391 #define MTOUCH_SELECT_SENSOR27 __paste4(MTOUCH_AD_, MTOUCH_SENSOR27)
02392 #define MTOUCH_SELECT_SENSOR28 __paste4(MTOUCH_AD_, MTOUCH_SENSOR28)
02393 #define MTOUCH_SELECT_SENSOR29 __paste4(MTOUCH_AD_, MTOUCH_SENSOR29)
02394 #define MTOUCH_SELECT_FVR_AND_GO __paste4(MTOUCH_AD_, FVR_AND_GO)
02395 #define MTOUCH_SELECT_DAC_AND_GO __paste4(MTOUCH_AD_, DAC_AND_GO)
02396 #define MTOUCH_SELECT_DAC_NOGO __paste4(MTOUCH_AD_, DAC_NOGO)
02397 #define MTOUCH_SELECT_ISO_AND_GO __paste4(MTOUCH_AD_, ISO_AND_GO)
02398 #define MTOUCH_SELECT_ISO_NOGO __paste4(MTOUCH_AD_, ISO_NOGO)
02399 #define MTOUCH_SELECT_REFERENCE __paste4(MTOUCH_AD_, CVD_REFERENCE)
02400 #define MTOUCH_SELECT_SENSOR(index) __paste3(MTOUCH_SELECT_SENSOR, index)
02401
02402
02403 #if defined(_PIC14E)
02404
02405 #include "mTouchCVD_macroLibrary_PIC16F1.h"
02406 #elif defined(_PIC14)
02407
02408 #include "mTouchCVD_macroLibrary_PIC16F.h"
02409 #elif defined(_PIC18) || defined(__18CXX)
02410
02411 #include "mTouchCVD_macroLibrary_PIC18F.h"
02412 #else
02413 #error The currently chosen processor core does not have a matching macroLibrary file associated with it.
02414 #endif
02415
02416 #if defined(MTOUCH_EEPROM_ENABLED)
02417
02418 #define MTOUCH_pDEBOUNCE_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_pDEB_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_pDEB_ADRL))
02419 #define MTOUCH_rDEBOUNCE_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_rDEB_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_rDEB_ADRL))
02420 #define MTOUCH_SCALING_VALUE MTOUCH_EEPROM_read(MTOUCH_EEPROM_SCALE_ADR)
02421 #define MTOUCH_BASELINE_WEIGHT_VALUE MTOUCH_EEPROM_read(MTOUCH_EEPROM_BLWEIGHT_ADR)
02422 #define MTOUCH_NEGCAP_VALUE MTOUCH_EEPROM_read(MTOUCH_EEPROM_NEGCAP_ADR)
02423 #define MTOUCH_JITTER_VALUE MTOUCH_EEPROM_read(MTOUCH_EEPROM_JITTER_ADR)
02424 #define MTOUCH_SpS_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_SpS_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_SpS_ADRL))
02425 #define MTOUCH_pTIMEOUT_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_pTIMEOUT_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_pTIMEOUT_ADRL))
02426 #define MTOUCH_BASELINE_RATE_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_BLRATE_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_BLRATE_ADRL))
02427 #define MTOUCH_DECIMATION_MAX_VALUE (((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_DECSTEP_ADRH)) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_DECSTEP_ADRL))
02428
02429 #define mTouch_GetPressThreshold(i) MTOUCH_EEPROM_pTHRESHOLD(i)
02430 #define mTouch_GetReleaseThreshold(i) MTOUCH_EEPROM_rTHRESHOLD(i)
02431
02432
02433 #else
02434
02435 #define mTouch_GetPressThreshold(i) mTouch_pressThreshold[i]
02436 #define mTouch_GetReleaseThreshold(i) mTouch_releaseThreshold[i]
02437
02438 #define MTOUCH_pDEBOUNCE_VALUE MTOUCH_DEBOUNCE_PRESS
02439 #define MTOUCH_rDEBOUNCE_VALUE MTOUCH_DEBOUNCE_RELEASE
02440 #define MTOUCH_pTIMEOUT_VALUE MTOUCH_BUTTON_TIMEOUT
02441 #define MTOUCH_SpS_VALUE MTOUCH_SAMPLES_PER_SCAN
02442 #define MTOUCH_SCALING_VALUE MTOUCH_SCALING
02443 #define MTOUCH_BASELINE_WEIGHT_VALUE MTOUCH_BASELINE_WEIGHT
02444 #define MTOUCH_BASELINE_RATE_VALUE MTOUCH_BASELINE_RATE
02445 #define MTOUCH_NEGCAP_VALUE MTOUCH_NEGATIVE_CAPACITANCE
02446 #define MTOUCH_DECIMATION_MAX_VALUE MTOUCH_DECIMATION_MAX_STEP
02447
02448
02449 #endif // end: if !defined(MTOUCH_EEPROM_ENABLED)
02450
02451 #if defined(MTOUCH_MATRIX_ENABLED)
02452
02453
02454 #if !defined(MTOUCH_MATRIX_ROW_START) || \
02455 !defined(MTOUCH_MATRIX_ROW_END) || \
02456 !defined(MTOUCH_MATRIX_COLUMN_START) || \
02457 !defined(MTOUCH_MATRIX_COLUMN_END)
02458
02459 #error You have enabled the mTouch matrix feature but have not defined all of the necessary parameters. Please make sure mTouch_config.h contains definitions for MTOUCH_MATRIX_ROW_START, MTOUCH_MATRIX_ROW_END, MTOUCH_MATRIX_COLUMN_START, and MTOUCH_MATRIX_COLUMN_END.
02460
02461 #endif
02462
02463 #define MTOUCH_MATRIX_ROW_COUNT (MTOUCH_MATRIX_ROW_END-MTOUCH_MATRIX_ROW_START+1)
02464 #define MTOUCH_MATRIX_COLUMN_COUNT (MTOUCH_MATRIX_COLUMN_END-MTOUCH_MATRIX_COLUMN_START+1)
02465
02466
02467 #if MTOUCH_MATRIX_ROW_START < MTOUCH_MATRIX_COLUMN_START
02468 #define MTOUCH_MATRIX_START MTOUCH_MATRIX_ROW_START
02469 #define MTOUCH_MATRIX_END MTOUCH_MATRIX_COLUMN_END
02470 #define MTOUCH_MATRIX_ROWS_FIRST
02471
02472 #if (MTOUCH_MATRIX_ROW_END + 1) != MTOUCH_MATRIX_COLUMN_START
02473 #define MTOUCH_MATRIX_NOTCONTIGUOUS
02474 #endif
02475 #else
02476 #define MTOUCH_MATRIX_START MTOUCH_MATRIX_COLUMN_START
02477 #define MTOUCH_MATRIX_END MTOUCH_MATRIX_ROW_END
02478 #define MTOUCH_MATRIX_COLUMNS_FIRST
02479
02480 #if (MTOUCH_MATRIX_COLUMN_END + 1) != MTOUCH_MATRIX_ROW_START
02481 #define MTOUCH_MATRIX_NOTCONTIGUOUS
02482 #endif
02483 #endif
02484
02485 #if defined(MTOUCH_MATRIX_NOTCONTIGUOUS)
02486 #error The mTouch matrix indexes for rows and columns are not contiguous. Please rearrange the sensor definitions in mTouch_config.h to place the row and column sensor indexes next to each other. Ex: Rows 0-1, Columns 2-3. Or Columns 0-4, Rows 5-10.
02487 #endif
02488
02489
02490 #if MTOUCH_MATRIX_START == 0
02491
02492 #if MTOUCH_MATRIX_END == (MTOUCH_NUMBER_SENSOR - 1)
02493 #define MTOUCH_MATRIX_SENSORS_ONLY
02494 #else
02495 #define MTOUCH_SENSOR_START MTOUCH_MATRIX_END+1
02496 #define MTOUCH_SENSOR_END MTOUCH_NUMBER_SENSORS-1
02497 #endif
02498
02499 #define MTOUCH_MATRIX_DEFS_AT_START
02500 #else
02501 #define MTOUCH_SENSOR_START 0
02502 #define MTOUCH_SENSOR_END MTOUCH_MATRIX_START-1
02503
02504 #if (MTOUCH_MATRIX_END + 1) != MTOUCH_NUMBER_SENSORS
02505 #error The mTouch matrix sensors implementing the rows and columns must be either the very first sensors (in terms of index) or the very last sensors. Right now, the non-matrix sensors are split on either side of the matrix sensors. Please rearrange the sensors in mTouch_config.h.
02506 #endif
02507
02508 #define MTOUCH_MATRIX_DEFS_AT_END
02509 #endif
02510
02511 #if !defined(MTOUCH_MOST_PRESSED_THRESHOLD)
02512 #error Please define MTOUCH_MOST_PRESSED_THRESHOLD in the mTouch_config.h file - it is required for the matrix implementation so that the rows and columns may be run through a most-pressed algorithm to avoid issues with crosstalk.
02513 #endif
02514
02515
02516 #if MTOUCH_MATRIX_ROW_COUNT == 2
02517 #define MTOUCH_MATRIX_ROW_OFFSET 1
02518 #define MTOUCH_MATRIX_ROW_MASK 0x01
02519 #elif MTOUCH_MATRIX_ROW_COUNT < 5
02520 #define MTOUCH_MATRIX_ROW_OFFSET 2
02521 #define MTOUCH_MATRIX_ROW_MASK 0x03
02522 #elif MTOUCH_MATRIX_ROW_COUNT < 9
02523 #define MTOUCH_MATRIX_ROW_OFFSET 3
02524 #define MTOUCH_MATRIX_ROW_MASK 0x07
02525 #elif MTOUCH_MATRIX_ROW_COUNT < 17
02526 #define MTOUCH_MATRIX_ROW_OFFSET 4
02527 #define MTOUCH_MATRIX_ROW_MASK 0x0F
02528 #else
02529 #error The mTouch Framework's matrix output logic does not currently support more than 16 rows or columns.
02530 #endif
02531 #else
02532
02533
02534 #define MTOUCH_SENSOR_START 0
02535 #define MTOUCH_SENSOR_END MTOUCH_NUMBER_SENSORS-1
02536
02537 #endif
02538
02539 #if (PIC_ADC_BITS == 8)
02540 #define MTOUCH_ADC_INIT() PIC_ADC_SETCLK();
02541 #elif (PIC_ADC_BITS == 10)
02542 #define MTOUCH_ADC_INIT() PIC_ADC_SETCLK(); PIC_ADC_ADFM = PIC_ADC_ADFM_RIGHT;
02543 #elif (PIC_ADC_BITS == 12)
02544 #define MTOUCH_ADC_INIT() PIC_ADC_SETCLK(); PIC_ADC_ADFM = PIC_ADC_ADFM_RIGHT;
02545 #endif
02546
02547 #if (MTOUCH_NUMBER_SENSORS <= 8)
02548 #define MTOUCH_STATEMASK_BYTES 1
02549 #elif (MTOUCH_NUMBER_SENSORS <= 16)
02550 #define MTOUCH_STATEMASK_BYTES 2
02551 #elif (MTOUCH_NUMBER_SENSORS <= 24)
02552 #define MTOUCH_STATEMASK_BYTES 3
02553 #elif (MTOUCH_NUMBER_SENSORS <= 32)
02554 #define MTOUCH_STATEMASK_BYTES 4
02555 #endif
02556
02557 #if defined(MTOUCH_SLIDERS_ENABLED) || defined(MTOUCH_MOST_PRESSED_ONLY) || defined(MTOUCH_MATRIX_ENABLED)
02558 #define MTOUCH_REQUIRES_DELTA_ARRAY
02559 #endif
02560
02561 #if MTOUCH_NUMBER_PROXIMITY > 0
02562 #define MTOUCH_PROXIMITY_ENABLED
02563 #endif
02564
02565 #define MTOUCH_STATEMACHINE_0 &mTouch_ButtonStateMachine
02566 #define MTOUCH_STATEMACHINE_1 , &mTouch_ButtonStateMachine
02567 #define MTOUCH_STATEMACHINE_2 , &mTouch_ButtonStateMachine
02568 #define MTOUCH_STATEMACHINE_3 , &mTouch_ButtonStateMachine
02569 #define MTOUCH_STATEMACHINE_4 , &mTouch_ButtonStateMachine
02570 #define MTOUCH_STATEMACHINE_5 , &mTouch_ButtonStateMachine
02571 #define MTOUCH_STATEMACHINE_6 , &mTouch_ButtonStateMachine
02572 #define MTOUCH_STATEMACHINE_7 , &mTouch_ButtonStateMachine
02573 #define MTOUCH_STATEMACHINE_8 , &mTouch_ButtonStateMachine
02574 #define MTOUCH_STATEMACHINE_9 , &mTouch_ButtonStateMachine
02575 #define MTOUCH_STATEMACHINE_10 , &mTouch_ButtonStateMachine
02576 #define MTOUCH_STATEMACHINE_11 , &mTouch_ButtonStateMachine
02577 #define MTOUCH_STATEMACHINE_12 , &mTouch_ButtonStateMachine
02578 #define MTOUCH_STATEMACHINE_13 , &mTouch_ButtonStateMachine
02579 #define MTOUCH_STATEMACHINE_14 , &mTouch_ButtonStateMachine
02580 #define MTOUCH_STATEMACHINE_15 , &mTouch_ButtonStateMachine
02581 #define MTOUCH_STATEMACHINE_16 , &mTouch_ButtonStateMachine
02582 #define MTOUCH_STATEMACHINE_17 , &mTouch_ButtonStateMachine
02583 #define MTOUCH_STATEMACHINE_18 , &mTouch_ButtonStateMachine
02584 #define MTOUCH_STATEMACHINE_19 , &mTouch_ButtonStateMachine
02585 #define MTOUCH_STATEMACHINE_20 , &mTouch_ButtonStateMachine
02586 #define MTOUCH_STATEMACHINE_21 , &mTouch_ButtonStateMachine
02587 #define MTOUCH_STATEMACHINE_22 , &mTouch_ButtonStateMachine
02588 #define MTOUCH_STATEMACHINE_23 , &mTouch_ButtonStateMachine
02589 #define MTOUCH_STATEMACHINE_24 , &mTouch_ButtonStateMachine
02590 #define MTOUCH_STATEMACHINE_25 , &mTouch_ButtonStateMachine
02591 #define MTOUCH_STATEMACHINE_26 , &mTouch_ButtonStateMachine
02592 #define MTOUCH_STATEMACHINE_27 , &mTouch_ButtonStateMachine
02593 #define MTOUCH_STATEMACHINE_28 , &mTouch_ButtonStateMachine
02594 #define MTOUCH_STATEMACHINE_29 , &mTouch_ButtonStateMachine
02595
02596 #define MTOUCH_SENSOR0_PROXINDEX MTOUCH_NUMBER_SENSORS
02597 #define MTOUCH_SENSOR1_PROXINDEX , MTOUCH_NUMBER_SENSORS
02598 #define MTOUCH_SENSOR2_PROXINDEX , MTOUCH_NUMBER_SENSORS
02599 #define MTOUCH_SENSOR3_PROXINDEX , MTOUCH_NUMBER_SENSORS
02600 #define MTOUCH_SENSOR4_PROXINDEX , MTOUCH_NUMBER_SENSORS
02601 #define MTOUCH_SENSOR5_PROXINDEX , MTOUCH_NUMBER_SENSORS
02602 #define MTOUCH_SENSOR6_PROXINDEX , MTOUCH_NUMBER_SENSORS
02603 #define MTOUCH_SENSOR7_PROXINDEX , MTOUCH_NUMBER_SENSORS
02604 #define MTOUCH_SENSOR8_PROXINDEX , MTOUCH_NUMBER_SENSORS
02605 #define MTOUCH_SENSOR9_PROXINDEX , MTOUCH_NUMBER_SENSORS
02606 #define MTOUCH_SENSOR10_PROXINDEX , MTOUCH_NUMBER_SENSORS
02607 #define MTOUCH_SENSOR11_PROXINDEX , MTOUCH_NUMBER_SENSORS
02608 #define MTOUCH_SENSOR12_PROXINDEX , MTOUCH_NUMBER_SENSORS
02609 #define MTOUCH_SENSOR13_PROXINDEX , MTOUCH_NUMBER_SENSORS
02610 #define MTOUCH_SENSOR14_PROXINDEX , MTOUCH_NUMBER_SENSORS
02611 #define MTOUCH_SENSOR15_PROXINDEX , MTOUCH_NUMBER_SENSORS
02612 #define MTOUCH_SENSOR16_PROXINDEX , MTOUCH_NUMBER_SENSORS
02613 #define MTOUCH_SENSOR17_PROXINDEX , MTOUCH_NUMBER_SENSORS
02614 #define MTOUCH_SENSOR18_PROXINDEX , MTOUCH_NUMBER_SENSORS
02615 #define MTOUCH_SENSOR19_PROXINDEX , MTOUCH_NUMBER_SENSORS
02616 #define MTOUCH_SENSOR20_PROXINDEX , MTOUCH_NUMBER_SENSORS
02617 #define MTOUCH_SENSOR21_PROXINDEX , MTOUCH_NUMBER_SENSORS
02618 #define MTOUCH_SENSOR22_PROXINDEX , MTOUCH_NUMBER_SENSORS
02619 #define MTOUCH_SENSOR23_PROXINDEX , MTOUCH_NUMBER_SENSORS
02620 #define MTOUCH_SENSOR24_PROXINDEX , MTOUCH_NUMBER_SENSORS
02621 #define MTOUCH_SENSOR25_PROXINDEX , MTOUCH_NUMBER_SENSORS
02622 #define MTOUCH_SENSOR26_PROXINDEX , MTOUCH_NUMBER_SENSORS
02623 #define MTOUCH_SENSOR27_PROXINDEX , MTOUCH_NUMBER_SENSORS
02624 #define MTOUCH_SENSOR28_PROXINDEX , MTOUCH_NUMBER_SENSORS
02625 #define MTOUCH_SENSOR29_PROXINDEX , MTOUCH_NUMBER_SENSORS
02626
02627 #if MTOUCH_NUMBER_SENSORS > 0
02628 #if defined(MTOUCH_SENSOR0_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02629 #undef MTOUCH_STATEMACHINE_0
02630 #undef MTOUCH_SENSOR0_PROXINDEX
02631 #define MTOUCH_STATEMACHINE_0 &mTouch_ProxStateMachine
02632 #define MTOUCH_SENSOR0_PROXINDEX MTOUCH_SENSOR0_IS_PROX
02633 #endif
02634 #else
02635 #undef MTOUCH_SENSOR0_PROXINDEX
02636 #define MTOUCH_SENSOR0_PROXINDEX
02637 #undef MTOUCH_STATEMACHINE_0
02638 #define MTOUCH_STATEMACHINE_0
02639 #endif
02640 #if MTOUCH_NUMBER_SENSORS > 1
02641 #if defined(MTOUCH_SENSOR1_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02642 #undef MTOUCH_STATEMACHINE_1
02643 #undef MTOUCH_SENSOR1_PROXINDEX
02644 #define MTOUCH_STATEMACHINE_1 , &mTouch_ProxStateMachine
02645 #define MTOUCH_SENSOR1_PROXINDEX , MTOUCH_SENSOR1_IS_PROX
02646 #endif
02647 #else
02648 #undef MTOUCH_SENSOR1_PROXINDEX
02649 #define MTOUCH_SENSOR1_PROXINDEX
02650 #undef MTOUCH_STATEMACHINE_1
02651 #define MTOUCH_STATEMACHINE_1
02652 #endif
02653 #if MTOUCH_NUMBER_SENSORS > 2
02654 #if defined(MTOUCH_SENSOR2_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02655 #undef MTOUCH_STATEMACHINE_2
02656 #undef MTOUCH_SENSOR2_PROXINDEX
02657 #define MTOUCH_STATEMACHINE_2 , &mTouch_ProxStateMachine
02658 #define MTOUCH_SENSOR2_PROXINDEX , MTOUCH_SENSOR2_IS_PROX
02659 #endif
02660 #else
02661 #undef MTOUCH_SENSOR2_PROXINDEX
02662 #define MTOUCH_SENSOR2_PROXINDEX
02663 #undef MTOUCH_STATEMACHINE_2
02664 #define MTOUCH_STATEMACHINE_2
02665 #endif
02666 #if MTOUCH_NUMBER_SENSORS > 3
02667 #if defined(MTOUCH_SENSOR3_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02668 #undef MTOUCH_STATEMACHINE_3
02669 #undef MTOUCH_SENSOR3_PROXINDEX
02670 #define MTOUCH_STATEMACHINE_3 , &mTouch_ProxStateMachine
02671 #define MTOUCH_SENSOR3_PROXINDEX , MTOUCH_SENSOR3_IS_PROX
02672 #endif
02673 #else
02674 #undef MTOUCH_SENSOR3_PROXINDEX
02675 #define MTOUCH_SENSOR3_PROXINDEX
02676 #undef MTOUCH_STATEMACHINE_3
02677 #define MTOUCH_STATEMACHINE_3
02678 #endif
02679 #if MTOUCH_NUMBER_SENSORS > 4
02680 #if defined(MTOUCH_SENSOR4_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02681 #undef MTOUCH_STATEMACHINE_4
02682 #undef MTOUCH_SENSOR4_PROXINDEX
02683 #define MTOUCH_STATEMACHINE_4 , &mTouch_ProxStateMachine
02684 #define MTOUCH_SENSOR4_PROXINDEX , MTOUCH_SENSOR4_IS_PROX
02685 #endif
02686 #else
02687 #undef MTOUCH_SENSOR4_PROXINDEX
02688 #define MTOUCH_SENSOR4_PROXINDEX
02689 #undef MTOUCH_STATEMACHINE_4
02690 #define MTOUCH_STATEMACHINE_4
02691 #endif
02692 #if MTOUCH_NUMBER_SENSORS > 5
02693 #if defined(MTOUCH_SENSOR5_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02694 #undef MTOUCH_STATEMACHINE_5
02695 #undef MTOUCH_SENSOR5_PROXINDEX
02696 #define MTOUCH_STATEMACHINE_5 , &mTouch_ProxStateMachine
02697 #define MTOUCH_SENSOR5_PROXINDEX , MTOUCH_SENSOR5_IS_PROX
02698 #endif
02699 #else
02700 #undef MTOUCH_SENSOR5_PROXINDEX
02701 #define MTOUCH_SENSOR5_PROXINDEX
02702 #undef MTOUCH_STATEMACHINE_5
02703 #define MTOUCH_STATEMACHINE_5
02704 #endif
02705 #if MTOUCH_NUMBER_SENSORS > 6
02706 #if defined(MTOUCH_SENSOR6_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02707 #undef MTOUCH_STATEMACHINE_6
02708 #undef MTOUCH_SENSOR6_PROXINDEX
02709 #define MTOUCH_STATEMACHINE_6 , &mTouch_ProxStateMachine
02710 #define MTOUCH_SENSOR6_PROXINDEX , MTOUCH_SENSOR6_IS_PROX
02711 #endif
02712 #else
02713 #undef MTOUCH_SENSOR6_PROXINDEX
02714 #define MTOUCH_SENSOR6_PROXINDEX
02715 #undef MTOUCH_STATEMACHINE_6
02716 #define MTOUCH_STATEMACHINE_6
02717 #endif
02718 #if MTOUCH_NUMBER_SENSORS > 7
02719 #if defined(MTOUCH_SENSOR7_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02720 #undef MTOUCH_STATEMACHINE_7
02721 #undef MTOUCH_SENSOR7_PROXINDEX
02722 #define MTOUCH_STATEMACHINE_7 , &mTouch_ProxStateMachine
02723 #define MTOUCH_SENSOR7_PROXINDEX , MTOUCH_SENSOR7_IS_PROX
02724 #endif
02725 #else
02726 #undef MTOUCH_SENSOR7_PROXINDEX
02727 #define MTOUCH_SENSOR7_PROXINDEX
02728 #undef MTOUCH_STATEMACHINE_7
02729 #define MTOUCH_STATEMACHINE_7
02730 #endif
02731 #if MTOUCH_NUMBER_SENSORS > 8
02732 #if defined(MTOUCH_SENSOR8_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02733 #undef MTOUCH_STATEMACHINE_8
02734 #undef MTOUCH_SENSOR8_PROXINDEX
02735 #define MTOUCH_STATEMACHINE_8 , &mTouch_ProxStateMachine
02736 #define MTOUCH_SENSOR8_PROXINDEX , MTOUCH_SENSOR8_IS_PROX
02737 #endif
02738 #else
02739 #undef MTOUCH_SENSOR8_PROXINDEX
02740 #define MTOUCH_SENSOR8_PROXINDEX
02741 #undef MTOUCH_STATEMACHINE_8
02742 #define MTOUCH_STATEMACHINE_8
02743 #endif
02744 #if MTOUCH_NUMBER_SENSORS > 9
02745 #if defined(MTOUCH_SENSOR9_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02746 #undef MTOUCH_STATEMACHINE_9
02747 #undef MTOUCH_SENSOR9_PROXINDEX
02748 #define MTOUCH_STATEMACHINE_9 , &mTouch_ProxStateMachine
02749 #define MTOUCH_SENSOR9_PROXINDEX , MTOUCH_SENSOR9_IS_PROX
02750 #endif
02751 #else
02752 #undef MTOUCH_SENSOR9_PROXINDEX
02753 #define MTOUCH_SENSOR9_PROXINDEX
02754 #undef MTOUCH_STATEMACHINE_9
02755 #define MTOUCH_STATEMACHINE_9
02756 #endif
02757 #if MTOUCH_NUMBER_SENSORS > 10
02758 #if defined(MTOUCH_SENSOR10_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02759 #undef MTOUCH_STATEMACHINE_10
02760 #undef MTOUCH_SENSOR10_PROXINDEX
02761 #define MTOUCH_STATEMACHINE_10 , &mTouch_ProxStateMachine
02762 #define MTOUCH_SENSOR10_PROXINDEX , MTOUCH_SENSOR10_IS_PROX
02763 #endif
02764 #else
02765 #undef MTOUCH_SENSOR10_PROXINDEX
02766 #define MTOUCH_SENSOR10_PROXINDEX
02767 #undef MTOUCH_STATEMACHINE_10
02768 #define MTOUCH_STATEMACHINE_10
02769 #endif
02770 #if MTOUCH_NUMBER_SENSORS > 11
02771 #if defined(MTOUCH_SENSOR11_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02772 #undef MTOUCH_STATEMACHINE_11
02773 #undef MTOUCH_SENSOR11_PROXINDEX
02774 #define MTOUCH_STATEMACHINE_11 , &mTouch_ProxStateMachine
02775 #define MTOUCH_SENSOR11_PROXINDEX , MTOUCH_SENSOR11_IS_PROX
02776 #endif
02777 #else
02778 #undef MTOUCH_SENSOR11_PROXINDEX
02779 #define MTOUCH_SENSOR11_PROXINDEX
02780 #undef MTOUCH_STATEMACHINE_11
02781 #define MTOUCH_STATEMACHINE_11
02782 #endif
02783 #if MTOUCH_NUMBER_SENSORS > 12
02784 #if defined(MTOUCH_SENSOR12_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02785 #undef MTOUCH_STATEMACHINE_12
02786 #undef MTOUCH_SENSOR12_PROXINDEX
02787 #define MTOUCH_STATEMACHINE_12 , &mTouch_ProxStateMachine
02788 #define MTOUCH_SENSOR12_PROXINDEX , MTOUCH_SENSOR12_IS_PROX
02789 #endif
02790 #else
02791 #undef MTOUCH_SENSOR12_PROXINDEX
02792 #define MTOUCH_SENSOR12_PROXINDEX
02793 #undef MTOUCH_STATEMACHINE_12
02794 #define MTOUCH_STATEMACHINE_12
02795 #endif
02796 #if MTOUCH_NUMBER_SENSORS > 13
02797 #if defined(MTOUCH_SENSOR13_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02798 #undef MTOUCH_STATEMACHINE_13
02799 #undef MTOUCH_SENSOR13_PROXINDEX
02800 #define MTOUCH_STATEMACHINE_13 , &mTouch_ProxStateMachine
02801 #define MTOUCH_SENSOR13_PROXINDEX , MTOUCH_SENSOR13_IS_PROX
02802 #endif
02803 #else
02804 #undef MTOUCH_SENSOR13_PROXINDEX
02805 #define MTOUCH_SENSOR13_PROXINDEX
02806 #undef MTOUCH_STATEMACHINE_13
02807 #define MTOUCH_STATEMACHINE_13
02808 #endif
02809 #if MTOUCH_NUMBER_SENSORS > 14
02810 #if defined(MTOUCH_SENSOR14_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02811 #undef MTOUCH_STATEMACHINE_14
02812 #undef MTOUCH_SENSOR14_PROXINDEX
02813 #define MTOUCH_STATEMACHINE_14 , &mTouch_ProxStateMachine
02814 #define MTOUCH_SENSOR14_PROXINDEX , MTOUCH_SENSOR14_IS_PROX
02815 #endif
02816 #else
02817 #undef MTOUCH_SENSOR14_PROXINDEX
02818 #define MTOUCH_SENSOR14_PROXINDEX
02819 #undef MTOUCH_STATEMACHINE_14
02820 #define MTOUCH_STATEMACHINE_14
02821 #endif
02822 #if MTOUCH_NUMBER_SENSORS > 15
02823 #if defined(MTOUCH_SENSOR15_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02824 #undef MTOUCH_STATEMACHINE_15
02825 #undef MTOUCH_SENSOR15_PROXINDEX
02826 #define MTOUCH_STATEMACHINE_15 , &mTouch_ProxStateMachine
02827 #define MTOUCH_SENSOR15_PROXINDEX , MTOUCH_SENSOR15_IS_PROX
02828 #endif
02829 #else
02830 #undef MTOUCH_SENSOR15_PROXINDEX
02831 #define MTOUCH_SENSOR15_PROXINDEX
02832 #undef MTOUCH_STATEMACHINE_15
02833 #define MTOUCH_STATEMACHINE_15
02834 #endif
02835 #if MTOUCH_NUMBER_SENSORS > 16
02836 #if defined(MTOUCH_SENSOR16_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02837 #undef MTOUCH_STATEMACHINE_16
02838 #undef MTOUCH_SENSOR16_PROXINDEX
02839 #define MTOUCH_STATEMACHINE_16 , &mTouch_ProxStateMachine
02840 #define MTOUCH_SENSOR16_PROXINDEX , MTOUCH_SENSOR16_IS_PROX
02841 #endif
02842 #else
02843 #undef MTOUCH_SENSOR16_PROXINDEX
02844 #define MTOUCH_SENSOR16_PROXINDEX
02845 #undef MTOUCH_STATEMACHINE_16
02846 #define MTOUCH_STATEMACHINE_16
02847 #endif
02848 #if MTOUCH_NUMBER_SENSORS > 17
02849 #if defined(MTOUCH_SENSOR17_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02850 #undef MTOUCH_STATEMACHINE_17
02851 #undef MTOUCH_SENSOR17_PROXINDEX
02852 #define MTOUCH_STATEMACHINE_17 , &mTouch_ProxStateMachine
02853 #define MTOUCH_SENSOR17_PROXINDEX , MTOUCH_SENSOR17_IS_PROX
02854 #endif
02855 #else
02856 #undef MTOUCH_SENSOR17_PROXINDEX
02857 #define MTOUCH_SENSOR17_PROXINDEX
02858 #undef MTOUCH_STATEMACHINE_17
02859 #define MTOUCH_STATEMACHINE_17
02860 #endif
02861 #if MTOUCH_NUMBER_SENSORS > 18
02862 #if defined(MTOUCH_SENSOR18_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02863 #undef MTOUCH_STATEMACHINE_18
02864 #undef MTOUCH_SENSOR18_PROXINDEX
02865 #define MTOUCH_STATEMACHINE_18 , &mTouch_ProxStateMachine
02866 #define MTOUCH_SENSOR18_PROXINDEX , MTOUCH_SENSOR18_IS_PROX
02867 #endif
02868 #else
02869 #undef MTOUCH_SENSOR18_PROXINDEX
02870 #define MTOUCH_SENSOR18_PROXINDEX
02871 #undef MTOUCH_STATEMACHINE_18
02872 #define MTOUCH_STATEMACHINE_18
02873 #endif
02874 #if MTOUCH_NUMBER_SENSORS > 19
02875 #if defined(MTOUCH_SENSOR19_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02876 #undef MTOUCH_STATEMACHINE_19
02877 #undef MTOUCH_SENSOR19_PROXINDEX
02878 #define MTOUCH_STATEMACHINE_19 , &mTouch_ProxStateMachine
02879 #define MTOUCH_SENSOR19_PROXINDEX , MTOUCH_SENSOR19_IS_PROX
02880 #endif
02881 #else
02882 #undef MTOUCH_SENSOR19_PROXINDEX
02883 #define MTOUCH_SENSOR19_PROXINDEX
02884 #undef MTOUCH_STATEMACHINE_19
02885 #define MTOUCH_STATEMACHINE_19
02886 #endif
02887 #if MTOUCH_NUMBER_SENSORS > 20
02888 #if defined(MTOUCH_SENSOR20_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02889 #undef MTOUCH_STATEMACHINE_20
02890 #undef MTOUCH_SENSOR20_PROXINDEX
02891 #define MTOUCH_STATEMACHINE_20 , &mTouch_ProxStateMachine
02892 #define MTOUCH_SENSOR20_PROXINDEX , MTOUCH_SENSOR20_IS_PROX
02893 #endif
02894 #else
02895 #undef MTOUCH_SENSOR20_PROXINDEX
02896 #define MTOUCH_SENSOR20_PROXINDEX
02897 #undef MTOUCH_STATEMACHINE_20
02898 #define MTOUCH_STATEMACHINE_20
02899 #endif
02900 #if MTOUCH_NUMBER_SENSORS > 21
02901 #if defined(MTOUCH_SENSOR21_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02902 #undef MTOUCH_STATEMACHINE_21
02903 #undef MTOUCH_SENSOR21_PROXINDEX
02904 #define MTOUCH_STATEMACHINE_21 , &mTouch_ProxStateMachine
02905 #define MTOUCH_SENSOR21_PROXINDEX , MTOUCH_SENSOR21_IS_PROX
02906 #endif
02907 #else
02908 #undef MTOUCH_SENSOR21_PROXINDEX
02909 #define MTOUCH_SENSOR21_PROXINDEX
02910 #undef MTOUCH_STATEMACHINE_21
02911 #define MTOUCH_STATEMACHINE_21
02912 #endif
02913 #if MTOUCH_NUMBER_SENSORS > 22
02914 #if defined(MTOUCH_SENSOR22_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02915 #undef MTOUCH_STATEMACHINE_22
02916 #undef MTOUCH_SENSOR22_PROXINDEX
02917 #define MTOUCH_STATEMACHINE_22 , &mTouch_ProxStateMachine
02918 #define MTOUCH_SENSOR22_PROXINDEX , MTOUCH_SENSOR22_IS_PROX
02919 #endif
02920 #else
02921 #undef MTOUCH_SENSOR22_PROXINDEX
02922 #define MTOUCH_SENSOR22_PROXINDEX
02923 #undef MTOUCH_STATEMACHINE_22
02924 #define MTOUCH_STATEMACHINE_22
02925 #endif
02926 #if MTOUCH_NUMBER_SENSORS > 23
02927 #if defined(MTOUCH_SENSOR23_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02928 #undef MTOUCH_STATEMACHINE_23
02929 #undef MTOUCH_SENSOR23_PROXINDEX
02930 #define MTOUCH_STATEMACHINE_23 , &mTouch_ProxStateMachine
02931 #define MTOUCH_SENSOR23_PROXINDEX , MTOUCH_SENSOR23_IS_PROX
02932 #endif
02933 #else
02934 #undef MTOUCH_SENSOR23_PROXINDEX
02935 #define MTOUCH_SENSOR23_PROXINDEX
02936 #undef MTOUCH_STATEMACHINE_23
02937 #define MTOUCH_STATEMACHINE_23
02938 #endif
02939 #if MTOUCH_NUMBER_SENSORS > 24
02940 #if defined(MTOUCH_SENSOR24_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02941 #undef MTOUCH_STATEMACHINE_24
02942 #undef MTOUCH_SENSOR24_PROXINDEX
02943 #define MTOUCH_STATEMACHINE_24 , &mTouch_ProxStateMachine
02944 #define MTOUCH_SENSOR24_PROXINDEX , MTOUCH_SENSOR24_IS_PROX
02945 #endif
02946 #else
02947 #undef MTOUCH_SENSOR24_PROXINDEX
02948 #define MTOUCH_SENSOR24_PROXINDEX
02949 #undef MTOUCH_STATEMACHINE_24
02950 #define MTOUCH_STATEMACHINE_24
02951 #endif
02952 #if MTOUCH_NUMBER_SENSORS > 25
02953 #if defined(MTOUCH_SENSOR25_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02954 #undef MTOUCH_STATEMACHINE_25
02955 #undef MTOUCH_SENSOR25_PROXINDEX
02956 #define MTOUCH_STATEMACHINE_25 , &mTouch_ProxStateMachine
02957 #define MTOUCH_SENSOR25_PROXINDEX , MTOUCH_SENSOR25_IS_PROX
02958 #endif
02959 #else
02960 #undef MTOUCH_SENSOR25_PROXINDEX
02961 #define MTOUCH_SENSOR25_PROXINDEX
02962 #undef MTOUCH_STATEMACHINE_25
02963 #define MTOUCH_STATEMACHINE_25
02964 #endif
02965 #if MTOUCH_NUMBER_SENSORS > 26
02966 #if defined(MTOUCH_SENSOR26_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02967 #undef MTOUCH_STATEMACHINE_26
02968 #undef MTOUCH_SENSOR26_PROXINDEX
02969 #define MTOUCH_STATEMACHINE_26 , &mTouch_ProxStateMachine
02970 #define MTOUCH_SENSOR26_PROXINDEX , MTOUCH_SENSOR26_IS_PROX
02971 #endif
02972 #else
02973 #undef MTOUCH_SENSOR26_PROXINDEX
02974 #define MTOUCH_SENSOR26_PROXINDEX
02975 #undef MTOUCH_STATEMACHINE_26
02976 #define MTOUCH_STATEMACHINE_26
02977 #endif
02978 #if MTOUCH_NUMBER_SENSORS > 27
02979 #if defined(MTOUCH_SENSOR27_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02980 #undef MTOUCH_STATEMACHINE_27
02981 #undef MTOUCH_SENSOR27_PROXINDEX
02982 #define MTOUCH_STATEMACHINE_27 , &mTouch_ProxStateMachine
02983 #define MTOUCH_SENSOR27_PROXINDEX , MTOUCH_SENSOR27_IS_PROX
02984 #endif
02985 #else
02986 #undef MTOUCH_SENSOR27_PROXINDEX
02987 #define MTOUCH_SENSOR27_PROXINDEX
02988 #undef MTOUCH_STATEMACHINE_27
02989 #define MTOUCH_STATEMACHINE_27
02990 #endif
02991 #if MTOUCH_NUMBER_SENSORS > 28
02992 #if defined(MTOUCH_SENSOR28_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
02993 #undef MTOUCH_STATEMACHINE_28
02994 #undef MTOUCH_SENSOR28_PROXINDEX
02995 #define MTOUCH_STATEMACHINE_28 , &mTouch_ProxStateMachine
02996 #define MTOUCH_SENSOR28_PROXINDEX , MTOUCH_SENSOR28_IS_PROX
02997 #endif
02998 #else
02999 #undef MTOUCH_SENSOR28_PROXINDEX
03000 #define MTOUCH_SENSOR28_PROXINDEX
03001 #undef MTOUCH_STATEMACHINE_28
03002 #define MTOUCH_STATEMACHINE_28
03003 #endif
03004 #if MTOUCH_NUMBER_SENSORS > 29
03005 #if defined(MTOUCH_SENSOR29_IS_PROX) && defined(MTOUCH_PROXIMITY_ENABLED)
03006 #undef MTOUCH_STATEMACHINE_29
03007 #undef MTOUCH_SENSOR29_PROXINDEX
03008 #define MTOUCH_STATEMACHINE_29 , &mTouch_ProxStateMachine
03009 #define MTOUCH_SENSOR29_PROXINDEX , MTOUCH_SENSOR29_IS_PROX
03010 #endif
03011 #else
03012 #undef MTOUCH_SENSOR29_PROXINDEX
03013 #define MTOUCH_SENSOR29_PROXINDEX
03014 #undef MTOUCH_STATEMACHINE_29
03015 #define MTOUCH_STATEMACHINE_29
03016 #endif
03017
03018
03019
03020 #if defined(MTOUCH_EEPROM_ENABLED)
03021 #define MTOUCH_CONFIG_EEPROM 0x01
03022 #else
03023 #define MTOUCH_CONFIG_EEPROM 0x00
03024 #endif
03025
03026 #define MTOUCH_CVD_OR_CTMU 0x00
03027
03028 #if defined(MTOUCH_EEPROM_STORED_IN_RAM)
03029 #define MTOUCH_CONFIG_EERAMSTORAGE 0x80
03030 #else
03031 #define MTOUCH_CONFIG_EERAMSTORAGE 0x00
03032 #endif
03033
03034 #define MTOUCH_CONFIGURATION_BYTE (MTOUCH_CVD_OR_CTMU | MTOUCH_CONFIG_EEPROM | MTOUCH_CONFIG_EERAMSTORAGE)
03035
03036
03037 #endif
03038