Dependencies:   mbed

Committer:
XkLi
Date:
Wed Dec 14 02:46:16 2011 +0000
Revision:
1:44f0b9d5883b
Parent:
0:2fab16867d73

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
XkLi 0:2fab16867d73 1 #include <mbed.h>
XkLi 0:2fab16867d73 2 #include <mpr121.h>
XkLi 0:2fab16867d73 3 #include "strings.h"
XkLi 1:44f0b9d5883b 4
XkLi 0:2fab16867d73 5 DigitalOut led1(LED1);
XkLi 0:2fab16867d73 6
XkLi 0:2fab16867d73 7 InterruptIn interrupt0(p8); //interrupt pin for touch0
XkLi 0:2fab16867d73 8 InterruptIn interrupt1(p21); //interrupt for touch1
XkLi 0:2fab16867d73 9
XkLi 0:2fab16867d73 10 // Setup the i2c bus on pins 9 and 10
XkLi 0:2fab16867d73 11 I2C i2c2(p9, p10); // I2C is used by both touch sensors
XkLi 0:2fab16867d73 12 I2C i2c(p28, p27); // I2C is used by both touch sensors
XkLi 0:2fab16867d73 13
XkLi 0:2fab16867d73 14 Mpr121 touch1(&i2c, Mpr121::ADD_VSS);//setup touch1 address for vdd
XkLi 0:2fab16867d73 15 Mpr121 touch0(&i2c2, Mpr121::ADD_VSS);//setup touch0 address for vss
XkLi 0:2fab16867d73 16
XkLi 0:2fab16867d73 17
XkLi 0:2fab16867d73 18 //set serial port
XkLi 0:2fab16867d73 19 Serial device(p13, p14); // tx, rx
XkLi 0:2fab16867d73 20
XkLi 1:44f0b9d5883b 21 int key_code0=0;
XkLi 1:44f0b9d5883b 22 int key_code1=0;
XkLi 0:2fab16867d73 23
XkLi 0:2fab16867d73 24
XkLi 0:2fab16867d73 25 // Key hit/release interrupt routine for touch 0
XkLi 0:2fab16867d73 26 void fallInterrupt0() {
XkLi 0:2fab16867d73 27 key_code0=0;
XkLi 0:2fab16867d73 28 char i=0;
XkLi 0:2fab16867d73 29 int value=touch0.read(0x00);
XkLi 0:2fab16867d73 30 value +=touch0.read(0x01)<<8;
XkLi 0:2fab16867d73 31 // LED demo mod
XkLi 0:2fab16867d73 32 i=0;
XkLi 0:2fab16867d73 33 // puts key number out to LEDs for demo
XkLi 0:2fab16867d73 34 for (i=0; i<12; i++) {
XkLi 1:44f0b9d5883b 35 if (((value>>i)&0x01)==1) key_code0+=1<<i;
XkLi 0:2fab16867d73 36 }
XkLi 1:44f0b9d5883b 37
XkLi 0:2fab16867d73 38
XkLi 0:2fab16867d73 39 }
XkLi 0:2fab16867d73 40
XkLi 0:2fab16867d73 41
XkLi 0:2fab16867d73 42 //fall interrupt for touch1
XkLi 0:2fab16867d73 43 void fallInterrupt1() {
XkLi 0:2fab16867d73 44
XkLi 0:2fab16867d73 45 key_code1=0;
XkLi 1:44f0b9d5883b 46 int i=0;
XkLi 0:2fab16867d73 47 int value=touch1.read(0x00);
XkLi 0:2fab16867d73 48 value +=touch1.read(0x01)<<8;
XkLi 0:2fab16867d73 49 // LED demo mod
XkLi 0:2fab16867d73 50 i=0;
XkLi 0:2fab16867d73 51 // puts key number out to LEDs for demo
XkLi 0:2fab16867d73 52 for (i=0; i<12; i++) {
XkLi 1:44f0b9d5883b 53 if (((value>>i)&0x01)==1) key_code1+=1<<i;
XkLi 0:2fab16867d73 54 }
XkLi 1:44f0b9d5883b 55
XkLi 0:2fab16867d73 56 }
XkLi 0:2fab16867d73 57
XkLi 0:2fab16867d73 58
XkLi 0:2fab16867d73 59
XkLi 0:2fab16867d73 60 int main() {
XkLi 1:44f0b9d5883b 61 //device.printf("Starting \r\n");
XkLi 0:2fab16867d73 62
XkLi 0:2fab16867d73 63 char frompc=0;
XkLi 1:44f0b9d5883b 64 device.baud(115200);
XkLi 0:2fab16867d73 65 interrupt0.fall(&fallInterrupt0);
XkLi 0:2fab16867d73 66 interrupt0.mode(PullUp);
XkLi 0:2fab16867d73 67 interrupt1.fall(&fallInterrupt1);
XkLi 0:2fab16867d73 68 interrupt1.mode(PullUp);
XkLi 1:44f0b9d5883b 69
XkLi 1:44f0b9d5883b 70
XkLi 0:2fab16867d73 71 while (1) {
XkLi 1:44f0b9d5883b 72
XkLi 1:44f0b9d5883b 73
XkLi 1:44f0b9d5883b 74 if(device.readable()){ //checks if ebox sends request
XkLi 0:2fab16867d73 75 frompc=device.getc();
XkLi 1:44f0b9d5883b 76
XkLi 0:2fab16867d73 77
XkLi 1:44f0b9d5883b 78 switch(frompc)//read character and check it
XkLi 0:2fab16867d73 79 {
XkLi 0:2fab16867d73 80 case '0': //if character is '0' send key data from touch 0
XkLi 1:44f0b9d5883b 81 device.printf("%04d",key_code0);
XkLi 0:2fab16867d73 82 break;
XkLi 0:2fab16867d73 83
XkLi 0:2fab16867d73 84 case '1': //if character is '1' send key data from touch 1
XkLi 1:44f0b9d5883b 85 device.printf("%04d",key_code1);
XkLi 0:2fab16867d73 86 break;
XkLi 0:2fab16867d73 87
XkLi 0:2fab16867d73 88 case 'A': //case for string value
XkLi 1:44f0b9d5883b 89 device.printf("%04d",Strings());
XkLi 0:2fab16867d73 90 break;
XkLi 0:2fab16867d73 91
XkLi 0:2fab16867d73 92 default:
XkLi 0:2fab16867d73 93 break;
XkLi 0:2fab16867d73 94 }
XkLi 0:2fab16867d73 95
XkLi 1:44f0b9d5883b 96
XkLi 1:44f0b9d5883b 97 }
XkLi 0:2fab16867d73 98 }
XkLi 0:2fab16867d73 99 }