Bing Zhang / Mbed 2 deprecated TS_fore_back

Dependencies:   mbed

Committer:
bzhang10
Date:
Tue Nov 30 22:04:12 2010 +0000
Revision:
0:c0d343a5025a

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bzhang10 0:c0d343a5025a 1 #include "mbed.h"
bzhang10 0:c0d343a5025a 2 #define numsamples 1
bzhang10 0:c0d343a5025a 3
bzhang10 0:c0d343a5025a 4 AnalogIn input(p20);
bzhang10 0:c0d343a5025a 5 DigitalIn charger(p19);
bzhang10 0:c0d343a5025a 6 DigitalOut ground(p18);
bzhang10 0:c0d343a5025a 7 AnalogIn input1(p15);
bzhang10 0:c0d343a5025a 8 DigitalIn charger1(p16);
bzhang10 0:c0d343a5025a 9 DigitalOut ground1(p17);
bzhang10 0:c0d343a5025a 10 DigitalOut myled0(LED1);
bzhang10 0:c0d343a5025a 11 DigitalOut myled1(LED2);
bzhang10 0:c0d343a5025a 12 DigitalOut myled2(LED3);
bzhang10 0:c0d343a5025a 13 DigitalOut myled3(LED4);
bzhang10 0:c0d343a5025a 14 Serial pc(USBTX, USBRX); // tx, rx
bzhang10 0:c0d343a5025a 15 int sense();
bzhang10 0:c0d343a5025a 16 int touchSense0();
bzhang10 0:c0d343a5025a 17 int touchSense1();
bzhang10 0:c0d343a5025a 18 char r[100];
bzhang10 0:c0d343a5025a 19 int match=3;
bzhang10 0:c0d343a5025a 20 void foreground() {
bzhang10 0:c0d343a5025a 21 int i=0;
bzhang10 0:c0d343a5025a 22 pc.printf("cc");
bzhang10 0:c0d343a5025a 23 do {
bzhang10 0:c0d343a5025a 24 r[0]=pc.getc();
bzhang10 0:c0d343a5025a 25 } while (r[0]!='s');
bzhang10 0:c0d343a5025a 26 while (r[i]!='e') {
bzhang10 0:c0d343a5025a 27 i++;
bzhang10 0:c0d343a5025a 28 r[i]=pc.getc();
bzhang10 0:c0d343a5025a 29 // pc.printf("%c",r[i]);
bzhang10 0:c0d343a5025a 30 }
bzhang10 0:c0d343a5025a 31 match=1;
bzhang10 0:c0d343a5025a 32 pc.printf("%d",match);
bzhang10 0:c0d343a5025a 33 return;
bzhang10 0:c0d343a5025a 34 }
bzhang10 0:c0d343a5025a 35
bzhang10 0:c0d343a5025a 36 int main() {
bzhang10 0:c0d343a5025a 37 int sp;
bzhang10 0:c0d343a5025a 38 pc.attach(&foreground);
bzhang10 0:c0d343a5025a 39 while (1) {
bzhang10 0:c0d343a5025a 40 int i=1;
bzhang10 0:c0d343a5025a 41 pc.printf("tt");
bzhang10 0:c0d343a5025a 42 while ((r[i]!='e')&(match==1)) {
bzhang10 0:c0d343a5025a 43 sp=sense();
bzhang10 0:c0d343a5025a 44 pc.printf("WWW");
bzhang10 0:c0d343a5025a 45 if (sp==2) {
bzhang10 0:c0d343a5025a 46 match=2;
bzhang10 0:c0d343a5025a 47 break;
bzhang10 0:c0d343a5025a 48 } else {
bzhang10 0:c0d343a5025a 49 if (((sp==1)&(r[i]=='1'))^((sp==0)&(r[i]=='0')))
bzhang10 0:c0d343a5025a 50 match=1;
bzhang10 0:c0d343a5025a 51 else
bzhang10 0:c0d343a5025a 52 match=0;
bzhang10 0:c0d343a5025a 53 }
bzhang10 0:c0d343a5025a 54 i++;
bzhang10 0:c0d343a5025a 55 }
bzhang10 0:c0d343a5025a 56 switch (match) {
bzhang10 0:c0d343a5025a 57 case 0:
bzhang10 0:c0d343a5025a 58 pc.printf("HOST ERROR \n\r");
bzhang10 0:c0d343a5025a 59 match=3;
bzhang10 0:c0d343a5025a 60 i=1;
bzhang10 0:c0d343a5025a 61 break;
bzhang10 0:c0d343a5025a 62 case 1:
bzhang10 0:c0d343a5025a 63 pc.printf("MATCH \n\r");
bzhang10 0:c0d343a5025a 64 match=3;
bzhang10 0:c0d343a5025a 65 i=1;
bzhang10 0:c0d343a5025a 66 break;
bzhang10 0:c0d343a5025a 67 case 2:
bzhang10 0:c0d343a5025a 68 pc.printf("Touch Error \n\r");
bzhang10 0:c0d343a5025a 69 match=3;
bzhang10 0:c0d343a5025a 70 i=1;
bzhang10 0:c0d343a5025a 71 break;
bzhang10 0:c0d343a5025a 72 }
bzhang10 0:c0d343a5025a 73 }
bzhang10 0:c0d343a5025a 74 }
bzhang10 0:c0d343a5025a 75
bzhang10 0:c0d343a5025a 76 int sense() {
bzhang10 0:c0d343a5025a 77 int TS[2];
bzhang10 0:c0d343a5025a 78 while (1) {
bzhang10 0:c0d343a5025a 79 TS[0]=touchSense0();
bzhang10 0:c0d343a5025a 80 TS[1]=touchSense1();
bzhang10 0:c0d343a5025a 81 if (TS[0]*TS[1]==1) {
bzhang10 0:c0d343a5025a 82 return 2;
bzhang10 0:c0d343a5025a 83 } else {
bzhang10 0:c0d343a5025a 84 if (TS[0]==1) {
bzhang10 0:c0d343a5025a 85 while (TS[0]==1) {
bzhang10 0:c0d343a5025a 86 wait (0.5);
bzhang10 0:c0d343a5025a 87 TS[0]=touchSense0();
bzhang10 0:c0d343a5025a 88 TS[1]=touchSense1();
bzhang10 0:c0d343a5025a 89 if (TS[0]*TS[1]==1) {
bzhang10 0:c0d343a5025a 90 return 2;
bzhang10 0:c0d343a5025a 91 }
bzhang10 0:c0d343a5025a 92 }
bzhang10 0:c0d343a5025a 93 myled0=!myled0;
bzhang10 0:c0d343a5025a 94 return 0;
bzhang10 0:c0d343a5025a 95 } else {
bzhang10 0:c0d343a5025a 96 if (TS[1]==1) {
bzhang10 0:c0d343a5025a 97 while (TS[1]==1) {
bzhang10 0:c0d343a5025a 98 wait (0.5);
bzhang10 0:c0d343a5025a 99 TS[0]=touchSense0();
bzhang10 0:c0d343a5025a 100 TS[1]=touchSense1();
bzhang10 0:c0d343a5025a 101 if (TS[0]*TS[1]==1) {
bzhang10 0:c0d343a5025a 102 return 2;
bzhang10 0:c0d343a5025a 103 }
bzhang10 0:c0d343a5025a 104 }
bzhang10 0:c0d343a5025a 105 myled1=!myled1;
bzhang10 0:c0d343a5025a 106 return 1;
bzhang10 0:c0d343a5025a 107 }
bzhang10 0:c0d343a5025a 108 }
bzhang10 0:c0d343a5025a 109 }
bzhang10 0:c0d343a5025a 110 wait(0.005);
bzhang10 0:c0d343a5025a 111 }
bzhang10 0:c0d343a5025a 112 }
bzhang10 0:c0d343a5025a 113
bzhang10 0:c0d343a5025a 114 int touchSense0(void) {
bzhang10 0:c0d343a5025a 115 float sample;
bzhang10 0:c0d343a5025a 116 ground = 0;
bzhang10 0:c0d343a5025a 117 charger.mode(PullUp);
bzhang10 0:c0d343a5025a 118 charger.mode(PullNone);
bzhang10 0:c0d343a5025a 119 sample=input.read();
bzhang10 0:c0d343a5025a 120 if (sample < 0.3) {
bzhang10 0:c0d343a5025a 121 return 1;
bzhang10 0:c0d343a5025a 122 } else {
bzhang10 0:c0d343a5025a 123 return 0;
bzhang10 0:c0d343a5025a 124 }
bzhang10 0:c0d343a5025a 125 }
bzhang10 0:c0d343a5025a 126 int touchSense1(void) {
bzhang10 0:c0d343a5025a 127 float sample;
bzhang10 0:c0d343a5025a 128 ground1 = 0;
bzhang10 0:c0d343a5025a 129 charger1.mode(PullUp);
bzhang10 0:c0d343a5025a 130 charger1.mode(PullNone);
bzhang10 0:c0d343a5025a 131 sample=input1.read();
bzhang10 0:c0d343a5025a 132 if (sample < 0.3) {
bzhang10 0:c0d343a5025a 133 return 1;
bzhang10 0:c0d343a5025a 134 } else {
bzhang10 0:c0d343a5025a 135 return 0;
bzhang10 0:c0d343a5025a 136 }
bzhang10 0:c0d343a5025a 137 }