Martin Sturm
/
Project
main.cpp
- Committer:
- XkLi
- Date:
- 2011-11-30
- Revision:
- 0:2fab16867d73
- Child:
- 1:44f0b9d5883b
File content as of revision 0:2fab16867d73:
#include <mbed.h> #include <mpr121.h> #include "strings.h" DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); InterruptIn interrupt0(p8); //interrupt pin for touch0 InterruptIn interrupt1(p21); //interrupt for touch1 // Setup the i2c bus on pins 9 and 10 I2C i2c2(p9, p10); // I2C is used by both touch sensors I2C i2c(p28, p27); // I2C is used by both touch sensors Mpr121 touch1(&i2c, Mpr121::ADD_VSS);//setup touch1 address for vdd Mpr121 touch0(&i2c2, Mpr121::ADD_VSS);//setup touch0 address for vss //set serial port Serial device(p13, p14); // tx, rx Serial pc(USBTX, USBRX); unsigned int key_code0; unsigned int key_code1; // Key hit/release interrupt routine for touch 0 void fallInterrupt0() { key_code0=0; char i=0; int value=touch0.read(0x00); value +=touch0.read(0x01)<<8; // LED demo mod i=0; // puts key number out to LEDs for demo for (i=0; i<12; i++) { if (((value>>i)&0x01)==1) key_code0=i+1; } led4=key_code0 & 0x01; led3=(key_code0>>1) & 0x01; led2=(key_code0>>2) & 0x01; led1=(key_code0>>3) & 0x01; } //fall interrupt for touch1 void fallInterrupt1() { key_code1=0; char i=0; int value=touch1.read(0x00); value +=touch1.read(0x01)<<8; // LED demo mod i=0; // puts key number out to LEDs for demo for (i=0; i<12; i++) { if (((value>>i)&0x01)==1) key_code1=i+1; } led4=key_code1 & 0x01; led3=(key_code1>>1) & 0x01; led2=(key_code1>>2) & 0x01; led1=(key_code1>>3) & 0x01; } int main() { pc.printf("Starting \r\n"); char *key_buf;//buffer for data transmit to pc via serial char frompc=0; device.baud(9600); interrupt0.fall(&fallInterrupt0); interrupt0.mode(PullUp); interrupt1.fall(&fallInterrupt1); interrupt1.mode(PullUp); while (1) { wait(10); if(device.readable()) //checks if ebox sends request frompc=device.getc(); pc.printf(&frompc);//writes received data to pc for testing options switch(device.getc())//read character and check it { case '0': //if character is '0' send key data from touch 0 sprintf(key_buf,"%d",key_code0); device.printf(key_buf); break; case '1': //if character is '1' send key data from touch 1 sprintf(key_buf,"%d",key_code1); device.printf(key_buf); break; case 'A': //case for string value sprintf(key_buf,"%d",Strings()); device.printf(key_buf); break; default: break; } pc.printf(key_buf);//writes received data to pc for testing options } }