Bing Zhang / Mbed 2 deprecated TS_fore_back

Dependencies:   mbed

main.cpp

Committer:
bzhang10
Date:
2010-11-30
Revision:
0:c0d343a5025a

File content as of revision 0:c0d343a5025a:

#include "mbed.h"
#define numsamples 1

AnalogIn input(p20);
DigitalIn charger(p19);
DigitalOut ground(p18);
AnalogIn input1(p15);
DigitalIn charger1(p16);
DigitalOut ground1(p17);
DigitalOut myled0(LED1);
DigitalOut myled1(LED2);
DigitalOut myled2(LED3);
DigitalOut myled3(LED4);
Serial pc(USBTX, USBRX); // tx, rx
int sense();
int touchSense0();
int touchSense1();
char r[100];
int match=3;
void foreground() {
    int i=0;
    pc.printf("cc");
   do {
        r[0]=pc.getc();
    }  while (r[0]!='s');
    while (r[i]!='e') {
        i++;
        r[i]=pc.getc();
 //       pc.printf("%c",r[i]);       
    }
    match=1;
    pc.printf("%d",match);
    return;
}

int main() {
    int sp;
    pc.attach(&foreground);
    while (1) {               
        int i=1;
        pc.printf("tt");
        while ((r[i]!='e')&(match==1)) {
            sp=sense();
            pc.printf("WWW");
            if (sp==2) {
                match=2;
                break;
            } else {
                if (((sp==1)&(r[i]=='1'))^((sp==0)&(r[i]=='0')))
                    match=1;
                else
                    match=0;
            }
            i++;
        }
        switch (match) {
            case 0:
                pc.printf("HOST ERROR \n\r");
                match=3;
                i=1;
                break;
            case 1:
                pc.printf("MATCH \n\r");
                match=3;
                i=1;
                break;
            case 2:
                pc.printf("Touch Error \n\r");
                match=3;
                i=1;
                break;
        }
    }
}

int sense() {
    int TS[2];
    while (1) {
        TS[0]=touchSense0();
        TS[1]=touchSense1();
        if (TS[0]*TS[1]==1) {
            return 2;
        } else {
            if (TS[0]==1) {
                while (TS[0]==1) {
                    wait (0.5);
                    TS[0]=touchSense0();
                    TS[1]=touchSense1();
                    if (TS[0]*TS[1]==1) {
                        return 2;
                    }
                }
                myled0=!myled0;
                return 0;
            } else {
                if (TS[1]==1) {
                    while (TS[1]==1) {
                        wait (0.5);
                        TS[0]=touchSense0();
                        TS[1]=touchSense1();
                        if (TS[0]*TS[1]==1) {
                            return 2;
                        }
                    }
                    myled1=!myled1;
                    return 1;
                }
            }
        }
        wait(0.005);
    }
}

int touchSense0(void) {
    float sample;
    ground = 0;
    charger.mode(PullUp);
    charger.mode(PullNone);
    sample=input.read();
    if (sample < 0.3) {
        return 1;
    } else {
        return 0;
    }
}
int touchSense1(void) {
    float sample;
    ground1 = 0;
    charger1.mode(PullUp);
    charger1.mode(PullNone);
    sample=input1.read();
    if (sample < 0.3) {
        return 1;
    } else {
        return 0;
    }
}