Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:c0d343a5025a, 2010-11-30 (annotated)
- Committer:
- bzhang10
- Date:
- Tue Nov 30 22:04:12 2010 +0000
- Revision:
- 0:c0d343a5025a
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |