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.

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?

UserRevisionLine numberNew 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