Toyomasa Watarai
/
test_DEV-10508
SparkFun touch shield DEV010508
SparkFun touch shield DEV-10508
https://www.sparkfun.com/products/12013
main.cpp@1:84c75be2d6af, 2016-02-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |