Required Compiler
- HI-TECH C Compiler for PIC10/12/16 MCUs v9.81 or later
If a non-PRO license is used to compile the framework, the maximum number of supported sensors will decrease. Noise testing was performed using the PRO license.
Using a third-party compiler may result in unknown behavior due to the heavy use of compile-time code formatting.
Module Requirements
- 8-bit Hardware Timer Module for Interrupt
This module is used to schedule regular ADC scans on the sensors. 8-bit timers normally interrupt after 256 counts; however, the mTouch framework pre-loads the timer's register with a pseudo-random seed value to slightly jitter the sampling rate. This means that the average number of counts before it interrupts is 224.
You control the timer's prescaler and period registers.
NOTE: No timer is required if MTOUCH_INTEGRATION_TYPE is defined as MTOUCH_CALLED_FROM_MAINLOOP.
- Analog/Digital Converter
The ADC is the core module used by the mTouch framework to acquire a sensor reading. If you wish to perform an ADC reading in between mTouch scans you will need to set the MTOUCH_ADC_CONTROL configuration option to MTOUCH_RELEASES_ADC_AFTER_SCAN. The ADC is initialized for the framework by the mTouch_Init() function.
Memory/Processing Requirements
Roughly, the amount of time that will be spent in the mTouch ISR is based on the TMR0 prescaler value.
TMR0 Prescaler | mTouch ISR Processing Duty Cycle |
1 | Invalid |
2 | 40% |
4 | 20% |
8 | 10% |
The program memory and RAM requirements are determined mainly by the number of sensors.
Code Size / Program Memory (words) | Data Space / RAM (bytes) |
| Standard Midrange | Enhanced Midrange |
# Sensors | PRO | LITE | PRO | LITE |
1 | 653 | 885 | 648 | 884 |
2 | 961 | 1367 | 937 | 1387 |
3 | 1025 | 1432 | 1032 | 1483 |
4 | 1089 | 1496 | 1112 | 1563 |
5 | 1153 | 1563 | 1192 | 1643 |
6 | 1221 | 1628 | 1272 | 1731 |
+1 | +68 | +65 | +80 | +88 |
Most Pressed | +250 | +350 | +240 | +340 |
Matrix | +450 | +730 | +430 | +640 |
Slider | +480 | +750 | +460 | +680 |
Proximity | +450 | +1100 | +420 | +740 |
|
| Standard Midrange | Enhanced Midrange |
# Sensors | PRO | LITE | PRO | LITE |
1 | 44 | 49 | 36 | 43 |
2 | 57 | 70 | 50 | 60 |
3 | 68 | 81 | 61 | 71 |
4 | 79 | 92 | 72 | 82 |
5 | 90 | 103 | 83 | 93 |
6 | 101 | 114 | 94 | 104 |
+1 | +11 | +11 | +11 | +11 |
Most Pressed | +17 | +15 | +10 | +11 |
Matrix | +31 | +30 | +24 | +25 |
Slider | +29 | +24 | +24 | +22 |
Proximity | +28 | +33 | +26 | +27 |
|
Supported PICĀ® Microcontrollers
- PIC12/16F61x Family
-
PIC12F/HV615 :: 2 sensor limit (Lite: 1 sensor limit)
-
PIC12F617 :: All 4 sensors supported
-
PIC16F/HV616 :: All 8 sensors supported
- PIC12/16F68x Family
-
PIC12F683 :: All 4 sensors supported
-
PIC16F677 :: 8 sensor limit
-
PIC16F684 :: All 8 sensors supported
-
PIC16F685 :: All 12 sensors supported
-
PIC16F687 :: 8 sensor limit
-
PIC16F688 :: All 8 sensors supported
-
PIC16F689 :: All 12 sensors supported
-
PIC16F690 :: All 12 sensors supported
- PIC16F72x Family
-
PIC16F/LF722 :: 7 sensor limit
-
PIC16F/LF722A :: 8 sensor limit
-
PIC16F/LF723 :: All 11 sensors supported
-
PIC16F/LF723A :: All 11 sensors supported
-
PIC16F/LF724 :: All 11 sensors supported
-
PIC16F/LF726 :: All 11 sensors supported
-
PIC16F/LF727 :: All 11 sensors supported
- PIC16F78x Family
-
PIC16F/HV785 :: 9 sensor limit
- PIC16F150x Family
-
PIC16F/LF1507 :: All 12 sensors supported
-
PIC16F/LF1509 :: All 12 sensors supported
- PIC16F151x Family
-
PIC16F/LF1516 :: All 17 sensors supported
-
PIC16F/LF1518 :: All 17 sensors supported
-
PIC16F/LF1517 :: All 28 sensors supported
-
PIC16F/LF1519 :: All 28 sensors supported
- PIC16F152x Family
-
PIC16F/LF1526 :: All 30 sensors supported
-
PIC16F/LF1527 :: All 30 sensors supported
-
This family does not support single-sensor applications.
- PIC16F182x Family
-
PIC12F/LF1822 :: All 4 sensors supported
-
PIC16F/LF1823 :: All 8 sensors supported
-
PIC16F/LF1824 :: All 8 sensors supported
-
PIC16F/LF1825 :: All 8 sensors supported
-
PIC16F/LF1826 :: All 12 sensors supported
-
PIC16F/LF1827 :: All 12 sensors supported
-
PIC16F/LF1828 :: All 12 sensors supported
-
PIC16F/LF1829 :: All 12 sensors supported
- PIC16F184x Family
-
PIC12F/LF1840 :: All 4 sensors supported
-
PIC16F/LF1847 :: All 12 sensors supported
- PIC16LF190x Family
-
PIC16LF1902 :: 8 sensor limit
-
PIC16LF1903 :: All 11 sensors supported
-
PIC16LF1906 :: All 11 sensors supported
-
PIC16LF1904 :: All 14 sensors supported
-
PIC16LF1907 :: All 14 sensors supported
- PIC16F193x Family
-
PIC16F/LF1933 :: All 11 sensors supported
-
PIC16F/LF1936 :: All 11 sensors supported
-
PIC16F/LF1938 :: All 11 sensors supported
-
PIC16F/LF1934 :: All 14 sensors supported
-
PIC16F/LF1937 :: All 14 sensors supported
-
PIC16F/LF1939 :: All 14 sensors supported
- PIC16F194x Family
-
PIC16F/LF1946 :: All 17 sensors supported
-
PIC16F/LF1947 :: All 17 sensors supported
- PIC18FxxJ50 Family
-
PIC18F/LF24J50 :: All 10 sensors supported
-
PIC18F/LF25J50 :: All 10 sensors supported
-
PIC18F/LF26J50 :: All 10 sensors supported
-
PIC18F/LF44J50 :: All 13 sensors supported
-
PIC18F/LF45J50 :: All 13 sensors supported
-
PIC18F/LF46J50 :: All 13 sensors supported
-
PIC18F65J50 :: All 8 sensors supported
-
PIC18F66J50 :: All 8 sensors supported
-
PIC18F67J50 :: All 8 sensors supported
-
PIC18F85J50 :: All 12 sensors supported
-
PIC18F86J50 :: All 12 sensors supported
-
PIC18F87J50 :: All 12 sensors supported