This is a VERY low-level library for controlling the TSI hardware module in a KL25 microcontroller. The programmer creates the TSI object passing basic parameters, and selects the active channels. Then, a scan on a given channel can be started, and the raw result can be read.
TSIHW.h@1:532aa572220b, 2014-09-26 (annotated)
- Committer:
- quevedo
- Date:
- Fri Sep 26 17:25:06 2014 +0000
- Revision:
- 1:532aa572220b
- Parent:
- 0:b39f4f954a9b
Corrected to activate clock gating on PORTs A, B, and C so all electrodes can work
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
quevedo | 0:b39f4f954a9b | 1 | #ifndef TSIHW_H |
quevedo | 0:b39f4f954a9b | 2 | #define TSIHW_H |
quevedo | 0:b39f4f954a9b | 3 | |
quevedo | 0:b39f4f954a9b | 4 | #include "mbed.h" |
quevedo | 0:b39f4f954a9b | 5 | /** |
quevedo | 0:b39f4f954a9b | 6 | * KL25 TSI low-level library with very basic functions |
quevedo | 0:b39f4f954a9b | 7 | * |
quevedo | 0:b39f4f954a9b | 8 | * @code |
quevedo | 0:b39f4f954a9b | 9 | * #include "mbed.h" |
quevedo | 0:b39f4f954a9b | 10 | * #include "TSIHW.h" |
quevedo | 0:b39f4f954a9b | 11 | * |
quevedo | 0:b39f4f954a9b | 12 | * TSI touch(0,0,0,2,2); |
quevedo | 0:b39f4f954a9b | 13 | * Serial pc(USBTX, USBRX); |
quevedo | 0:b39f4f954a9b | 14 | * |
quevedo | 0:b39f4f954a9b | 15 | * int main() { |
quevedo | 0:b39f4f954a9b | 16 | * uint16_t s; |
quevedo | 0:b39f4f954a9b | 17 | * |
quevedo | 0:b39f4f954a9b | 18 | * pc.printf("BEGIN\r\n"); |
quevedo | 0:b39f4f954a9b | 19 | * touch.ActivateChannel(5); // Electrode connected to PTA4 |
quevedo | 0:b39f4f954a9b | 20 | * pc.printf("ACTIVATE\r\n"); |
quevedo | 0:b39f4f954a9b | 21 | * while(1) { |
quevedo | 0:b39f4f954a9b | 22 | * s = 0; |
quevedo | 0:b39f4f954a9b | 23 | * touch.Start(5); |
quevedo | 0:b39f4f954a9b | 24 | * pc.printf("START\r\n"); |
quevedo | 0:b39f4f954a9b | 25 | * while(!s) { |
quevedo | 0:b39f4f954a9b | 26 | * s = touch.Read(); |
quevedo | 0:b39f4f954a9b | 27 | * } |
quevedo | 0:b39f4f954a9b | 28 | * pc.printf("TOUCH: %d\r\n", s); |
quevedo | 0:b39f4f954a9b | 29 | * wait(1); |
quevedo | 0:b39f4f954a9b | 30 | * } |
quevedo | 0:b39f4f954a9b | 31 | * } |
quevedo | 0:b39f4f954a9b | 32 | * @endcode |
quevedo | 0:b39f4f954a9b | 33 | */ |
quevedo | 0:b39f4f954a9b | 34 | |
quevedo | 0:b39f4f954a9b | 35 | |
quevedo | 0:b39f4f954a9b | 36 | class TSI |
quevedo | 0:b39f4f954a9b | 37 | { |
quevedo | 0:b39f4f954a9b | 38 | public: |
quevedo | 0:b39f4f954a9b | 39 | TSI(char rchg, char echg, char dvolt, char ps, char nscn); |
quevedo | 0:b39f4f954a9b | 40 | |
quevedo | 0:b39f4f954a9b | 41 | ~TSI(); |
quevedo | 0:b39f4f954a9b | 42 | |
quevedo | 0:b39f4f954a9b | 43 | void ActivateChannel(char ch); |
quevedo | 0:b39f4f954a9b | 44 | |
quevedo | 0:b39f4f954a9b | 45 | void Start(char ch); |
quevedo | 0:b39f4f954a9b | 46 | |
quevedo | 0:b39f4f954a9b | 47 | uint16_t Read(void); |
quevedo | 0:b39f4f954a9b | 48 | |
quevedo | 0:b39f4f954a9b | 49 | }; |
quevedo | 0:b39f4f954a9b | 50 | #endif |