Touch sensor example for NXP Rapid IoT prototyping kit. Read more at https://www.hackster.io/marcomerli/riotwear-mbed-2b2011.

Dependencies:   lib_sx9500

Committer:
batman52
Date:
Thu Dec 19 17:07:35 2019 +0000
Revision:
81:7a20aa99834e
Parent:
80:0f41eaa54a9b
Child:
82:a325ac3c1b73
added init function from NXP Rapid ioT SDK, read_proximity_sensors function now works well.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
batman52 80:0f41eaa54a9b 2 #include "sx9500.h"
batman52 79:0431b9fd3dc0 3
batman52 80:0f41eaa54a9b 4 I2C i2c0(I2C_SDA , I2C_SCL ); // I2C_SCL = PTC10, I2C_SDA = PTC11,
batman52 80:0f41eaa54a9b 5 SX9500 touch(i2c0, PTA24, PTA9); // TOUCH_TXEN = PTA24, TOUCH_INT = PTA9
batman52 80:0f41eaa54a9b 6 DigitalOut touch_rst(PTA2,1); // TOUCH_RST = PTA2
Jonathan Austin 0:2757d7abb7d9 7
batman52 81:7a20aa99834e 8 void print_state(SX9500_TouchState_t ts)
batman52 81:7a20aa99834e 9 {
batman52 81:7a20aa99834e 10 if(ts.downPressed)
batman52 81:7a20aa99834e 11 printf("DOWN\r\n");
batman52 81:7a20aa99834e 12 if(ts.rightPressed)
batman52 81:7a20aa99834e 13 printf("RIGHT\r\n");
batman52 81:7a20aa99834e 14 if(ts.upPressed)
batman52 81:7a20aa99834e 15 printf("UP\r\n");
batman52 81:7a20aa99834e 16 if(ts.leftPressed)
batman52 81:7a20aa99834e 17 printf("LEFT\r\n");
batman52 81:7a20aa99834e 18 if(!ts.downPressed && !ts.rightPressed && !ts.upPressed && !ts.leftPressed )
batman52 81:7a20aa99834e 19 printf("NONE\r\n");
batman52 80:0f41eaa54a9b 20 }
batman52 80:0f41eaa54a9b 21
batman52 81:7a20aa99834e 22 // main() runs in its own thread in the OS
batman52 81:7a20aa99834e 23 int main() {
batman52 81:7a20aa99834e 24 SX9500_TouchState_t ts;
batman52 81:7a20aa99834e 25
batman52 81:7a20aa99834e 26 wait(1);
batman52 81:7a20aa99834e 27
batman52 81:7a20aa99834e 28 touch.reset();
batman52 81:7a20aa99834e 29 wait(0.3); // wait until the reset has finished
batman52 81:7a20aa99834e 30 touch.init();
batman52 81:7a20aa99834e 31 wait(0.3);
batman52 81:7a20aa99834e 32 touch.set_active(true);
batman52 81:7a20aa99834e 33 wait(0.3);
batman52 81:7a20aa99834e 34
batman52 81:7a20aa99834e 35 while (true) {
batman52 81:7a20aa99834e 36
batman52 81:7a20aa99834e 37 wait(0.3);
batman52 81:7a20aa99834e 38 ts = touch.read_proximity_sensors();
batman52 81:7a20aa99834e 39 print_state(ts);
batman52 81:7a20aa99834e 40
batman52 81:7a20aa99834e 41 }
batman52 81:7a20aa99834e 42 }