SparkFun touch shield DEV010508

Dependencies:   MPR121 mbed

SparkFun touch shield DEV-10508

https://www.sparkfun.com/products/12013

Committer:
MACRUM
Date:
Thu Feb 25 10:47:20 2016 +0000
Revision:
1:84c75be2d6af
Parent:
0:63b58e114ea5
Add LPC824 target support

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:63b58e114ea5 1 #include "mbed.h"
MACRUM 0:63b58e114ea5 2 #include "MPR121.h"
MACRUM 0:63b58e114ea5 3
MACRUM 0:63b58e114ea5 4 Serial pc(USBTX, USBRX);
MACRUM 0:63b58e114ea5 5 DigitalOut myled(LED1);
MACRUM 0:63b58e114ea5 6
MACRUM 1:84c75be2d6af 7 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24)
MACRUM 0:63b58e114ea5 8 I2C i2c(p28, p27);
MACRUM 0:63b58e114ea5 9 InterruptIn irq(p26);
MACRUM 0:63b58e114ea5 10 MPR121 touch_pad(i2c, irq, MPR121::ADDR_VSS);
MACRUM 0:63b58e114ea5 11 #define LED_ON 1
MACRUM 0:63b58e114ea5 12 #define LED_OFF 0
MACRUM 0:63b58e114ea5 13
MACRUM 1:84c75be2d6af 14 #elif defined(TARGET_KL25Z)
MACRUM 0:63b58e114ea5 15 I2C i2c(PTC9, PTC8);
MACRUM 0:63b58e114ea5 16 InterruptIn irq(PTA5);
MACRUM 0:63b58e114ea5 17 MPR121 touch_pad(i2c, irq, MPR121::ADDR_VSS);
MACRUM 0:63b58e114ea5 18 #define LED_ON 0
MACRUM 0:63b58e114ea5 19 #define LED_OFF 1
MACRUM 0:63b58e114ea5 20
MACRUM 1:84c75be2d6af 21 #elif defined(TARGET_LPC11U68) || defined(TARGET_LPC824)
MACRUM 0:63b58e114ea5 22 I2C i2c(A4, A5);
MACRUM 0:63b58e114ea5 23 InterruptIn irq(D2);
MACRUM 0:63b58e114ea5 24 MPR121 touch_pad(i2c, irq, MPR121::ADDR_VSS);
MACRUM 0:63b58e114ea5 25 #define LED_ON 0
MACRUM 0:63b58e114ea5 26 #define LED_OFF 1
MACRUM 0:63b58e114ea5 27
MACRUM 0:63b58e114ea5 28 #else
MACRUM 0:63b58e114ea5 29 #error TARGET NOT TESTED
MACRUM 0:63b58e114ea5 30 #endif
MACRUM 0:63b58e114ea5 31
MACRUM 0:63b58e114ea5 32 const int key_tbl[9] = {
MACRUM 0:63b58e114ea5 33 9,
MACRUM 0:63b58e114ea5 34 6,
MACRUM 0:63b58e114ea5 35 3,
MACRUM 0:63b58e114ea5 36 8,
MACRUM 0:63b58e114ea5 37 5,
MACRUM 0:63b58e114ea5 38 2,
MACRUM 0:63b58e114ea5 39 7,
MACRUM 0:63b58e114ea5 40 4,
MACRUM 0:63b58e114ea5 41 1,
MACRUM 0:63b58e114ea5 42 };
MACRUM 0:63b58e114ea5 43
MACRUM 0:63b58e114ea5 44 int main()
MACRUM 0:63b58e114ea5 45 {
MACRUM 0:63b58e114ea5 46 touch_pad.init();
MACRUM 0:63b58e114ea5 47 touch_pad.enable();
MACRUM 0:63b58e114ea5 48 touch_pad.registerDump(pc);
MACRUM 0:63b58e114ea5 49
MACRUM 0:63b58e114ea5 50 while(1) {
MACRUM 0:63b58e114ea5 51 if(touch_pad.isPressed()) {
MACRUM 0:63b58e114ea5 52 uint16_t button_val = touch_pad.buttonPressed();
MACRUM 0:63b58e114ea5 53 if (button_val != 0) {
MACRUM 0:63b58e114ea5 54 for(int i=0; i<=9; i++) {
MACRUM 0:63b58e114ea5 55 if ((button_val & (1 << i)))
MACRUM 0:63b58e114ea5 56 pc.printf("%d", key_tbl[i]);
MACRUM 0:63b58e114ea5 57 }
MACRUM 0:63b58e114ea5 58 } else {
MACRUM 0:63b58e114ea5 59 pc.printf("\n");
MACRUM 0:63b58e114ea5 60 }
MACRUM 0:63b58e114ea5 61 myled = (button_val>0) ? LED_ON : LED_OFF;
MACRUM 0:63b58e114ea5 62 }
MACRUM 0:63b58e114ea5 63 }
MACRUM 0:63b58e114ea5 64 }