Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
XkLi
Date:
Wed Dec 14 02:46:16 2011 +0000
Parent:
0:2fab16867d73
Commit message:

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
strings.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 2fab16867d73 -r 44f0b9d5883b main.cpp
--- a/main.cpp	Wed Nov 30 18:06:50 2011 +0000
+++ b/main.cpp	Wed Dec 14 02:46:16 2011 +0000
@@ -1,10 +1,8 @@
 #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
@@ -20,11 +18,8 @@
 //set serial port
 Serial device(p13, p14);  // tx, rx
 
-
-Serial pc(USBTX, USBRX);
- 
-unsigned int key_code0;
-unsigned int key_code1;
+ int key_code0=0;
+ int key_code1=0;
 
 
 // Key hit/release interrupt routine for touch 0
@@ -37,12 +32,9 @@
   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;
+  if (((value>>i)&0x01)==1) key_code0+=1<<i;
   }
-  led4=key_code0 & 0x01;
-  led3=(key_code0>>1) & 0x01;
-  led2=(key_code0>>2) & 0x01;
-  led1=(key_code0>>3) & 0x01;
+
 
 }
 
@@ -51,67 +43,57 @@
 void fallInterrupt1() {
 
   key_code1=0;
-  char i=0;
+  int 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;
+  if (((value>>i)&0x01)==1) key_code1+=1<<i;
   }
-  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");
-
+//device.printf("Starting \r\n");
 
-char *key_buf;//buffer for data transmit to pc via serial
 char frompc=0;
-  device.baud(9600); 
+  device.baud(115200); 
   interrupt0.fall(&fallInterrupt0);
   interrupt0.mode(PullUp);
   interrupt1.fall(&fallInterrupt1);
   interrupt1.mode(PullUp);
-  
+
+
   while (1) {
-  wait(10);
-  if(device.readable()) //checks if ebox sends request
+
+
+  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
+    switch(frompc)//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);
+            device.printf("%04d",key_code0);
             break;
         
         case '1':           //if character is '1' send key data from touch 1
-            sprintf(key_buf,"%d",key_code1);
-            device.printf(key_buf);
+            device.printf("%04d",key_code1);
             break;
            
         case 'A': //case for string value
-        sprintf(key_buf,"%d",Strings());
-        device.printf(key_buf);
+            device.printf("%04d",Strings());
             break;
             
         default:
             break;
        }
        
-  pc.printf(key_buf);//writes received data to pc for testing options
+  
+  }
   }
 }
\ No newline at end of file
diff -r 2fab16867d73 -r 44f0b9d5883b strings.cpp
--- a/strings.cpp	Wed Nov 30 18:06:50 2011 +0000
+++ b/strings.cpp	Wed Dec 14 02:46:16 2011 +0000
@@ -1,11 +1,5 @@
 #include "strings.h"
 
-int    tempEL = 40;
-int    tempA = 40;
-int    tempD = 40;
-int    tempG = 40;
-int    tempB = 40;
-int    tempEH = 40;
 
 //inputs for string detection
 AnalogIn EStringL(p20); 
@@ -16,48 +10,40 @@
 AnalogIn EStringH(p15);
 
 //detection range    
-int bufferVal = 15;
+#define bufferVal 0.5
     
     
 
-char output = 0;
+
 
 char Strings() {
-    
+char toPC=0;    
+int output[] = {-3,-3,-3,-3,-3,-3};
 
- 
-        if(abs(EStringL-tempEL) > bufferVal) {
-           output = (output|0x01); 
-        }else {
-           output = (output&0xFE);
+for(int i=0;i<5;i++){
+        if(EStringL > bufferVal) {
+           output[0] +=1; 
+        }
+        if(AString > bufferVal) {
+            output[1] +=1;
         } 
-        if(abs(AString-tempA) > bufferVal) {
-            output = (output|0x02); 
-        }else {
-         output = (output&0xFD);
-        } 
-       if(abs(DString-tempD) > bufferVal) {
-            output = (output|0x04); 
-        }else {
-          output = (output&0xFB);
+        if(DString > bufferVal) {
+            output[2] +=1; 
         } 
-        if(abs(GString-tempG) > bufferVal) {
-            output = (output|0x08); 
-        }else {
-          output = (output&0xF7);
+        if(GString > bufferVal) {
+            output[3]+=1;
         } 
-       if(abs(BString-tempB) > bufferVal) {
-            output = (output|0x10); 
-        }else {
-          output = (output&0xEF);
+        if(BString > bufferVal) {
+            output[4]+=1;
+        } 
+        if(EStringH > bufferVal) {
+             output[5]+=1;
         } 
-        if(abs(EStringH-tempEH) > bufferVal) {
-             output = (output|0x20); 
-        }else {
-          output = (output&0xDF);
-        } 
-        wait(0.02);
+ }
+    for(int i=0;i<6;i++){
+    if(output[i]>0)
+    toPC+=1<<i;
+    }
     
-    
-    return output;
+    return toPC;
 }
\ No newline at end of file