l
Dependencies: mbed
Fork of Nucleo_serial_sf by
main.cpp@4:eae42fe39107, 2015-10-26 (annotated)
- Committer:
- NamSom
- Date:
- Mon Oct 26 09:48:51 2015 +0000
- Revision:
- 4:eae42fe39107
- Parent:
- 3:a46061896235
55
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
NamSom | 4:eae42fe39107 | 1 | #include "mbed.h" |
Peeraya | 0:09e78c46c376 | 2 | |
Peeraya | 0:09e78c46c376 | 3 | //------------------------------------ |
Peeraya | 0:09e78c46c376 | 4 | // Hyperterminal configuration |
Peeraya | 0:09e78c46c376 | 5 | // 9600 bauds, 8-bit data, no parity |
Peeraya | 0:09e78c46c376 | 6 | //------------------------------------ |
NamSom | 4:eae42fe39107 | 7 | int pattern1(); |
NamSom | 4:eae42fe39107 | 8 | int pattern2(); |
NamSom | 4:eae42fe39107 | 9 | int checkState(); |
Peeraya | 1:a3a6e8f878da | 10 | Serial pc(SERIAL_TX, SERIAL_RX); |
Peeraya | 0:09e78c46c376 | 11 | |
Peeraya | 0:09e78c46c376 | 12 | DigitalOut myled0(D15); |
Peeraya | 0:09e78c46c376 | 13 | DigitalOut myled1(D14); |
Peeraya | 0:09e78c46c376 | 14 | DigitalOut myled2(D13); |
Peeraya | 0:09e78c46c376 | 15 | DigitalOut myled3(D12); |
Peeraya | 0:09e78c46c376 | 16 | DigitalOut myled4(D11); |
Peeraya | 0:09e78c46c376 | 17 | DigitalOut myled5(D10); |
Peeraya | 0:09e78c46c376 | 18 | DigitalOut myled6(D9); |
Peeraya | 0:09e78c46c376 | 19 | DigitalOut myled7(D8); |
Peeraya | 0:09e78c46c376 | 20 | |
Peeraya | 0:09e78c46c376 | 21 | DigitalIn inbutton(D3); |
NamSom | 4:eae42fe39107 | 22 | char data; |
Peeraya | 0:09e78c46c376 | 23 | |
NamSom | 3:a46061896235 | 24 | int checkState() |
NamSom | 3:a46061896235 | 25 | { |
NamSom | 4:eae42fe39107 | 26 | if(pc.readable()==1){ |
NamSom | 3:a46061896235 | 27 | data = pc.getc(); |
NamSom | 4:eae42fe39107 | 28 | if(data=='s'||data=='S') {return 1;} |
NamSom | 4:eae42fe39107 | 29 | else if(data=='a'||data=='A') {return 2;} |
NamSom | 4:eae42fe39107 | 30 | else if(data=='d'||data=='D') {return 3;} |
NamSom | 4:eae42fe39107 | 31 | else return 0;} |
NamSom | 3:a46061896235 | 32 | } |
NamSom | 3:a46061896235 | 33 | |
NamSom | 4:eae42fe39107 | 34 | int pattern1() |
NamSom | 3:a46061896235 | 35 | { |
NamSom | 4:eae42fe39107 | 36 | int check; |
NamSom | 3:a46061896235 | 37 | while(1){ |
NamSom | 3:a46061896235 | 38 | myled0=1; |
NamSom | 3:a46061896235 | 39 | wait(1); |
NamSom | 3:a46061896235 | 40 | myled0=0; |
NamSom | 3:a46061896235 | 41 | check=checkState(); |
NamSom | 4:eae42fe39107 | 42 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 43 | else if(check==3) break; |
NamSom | 3:a46061896235 | 44 | myled1=1; |
NamSom | 3:a46061896235 | 45 | wait(1); |
NamSom | 3:a46061896235 | 46 | myled1=0; |
NamSom | 3:a46061896235 | 47 | check=checkState(); |
NamSom | 4:eae42fe39107 | 48 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 49 | else if(check==3) break; |
NamSom | 3:a46061896235 | 50 | myled2=1; |
NamSom | 3:a46061896235 | 51 | wait(1); |
NamSom | 3:a46061896235 | 52 | myled2=0; |
NamSom | 3:a46061896235 | 53 | check=checkState(); |
NamSom | 4:eae42fe39107 | 54 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 55 | else if(check==3) break; |
NamSom | 3:a46061896235 | 56 | myled3=1; |
NamSom | 3:a46061896235 | 57 | wait(1); |
NamSom | 3:a46061896235 | 58 | myled3=0; |
NamSom | 3:a46061896235 | 59 | check=checkState(); |
NamSom | 4:eae42fe39107 | 60 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 61 | else if(check==3) break; |
NamSom | 3:a46061896235 | 62 | myled4=1; |
NamSom | 3:a46061896235 | 63 | wait(1); |
NamSom | 3:a46061896235 | 64 | myled4=0; |
NamSom | 3:a46061896235 | 65 | check=checkState(); |
NamSom | 4:eae42fe39107 | 66 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 67 | else if(check==3) break; |
NamSom | 3:a46061896235 | 68 | myled5=1; |
NamSom | 3:a46061896235 | 69 | wait(1); |
NamSom | 3:a46061896235 | 70 | myled5=0; |
NamSom | 3:a46061896235 | 71 | check=checkState(); |
NamSom | 4:eae42fe39107 | 72 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 73 | else if(check==3) break; |
NamSom | 3:a46061896235 | 74 | myled6=1; |
NamSom | 3:a46061896235 | 75 | wait(1); |
NamSom | 3:a46061896235 | 76 | myled6=0; |
NamSom | 3:a46061896235 | 77 | check=checkState(); |
NamSom | 4:eae42fe39107 | 78 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 79 | else if(check==3) break; |
NamSom | 3:a46061896235 | 80 | myled7=1; |
NamSom | 3:a46061896235 | 81 | wait(1); |
NamSom | 3:a46061896235 | 82 | myled7=0; |
NamSom | 3:a46061896235 | 83 | check=checkState(); |
NamSom | 4:eae42fe39107 | 84 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 85 | else if(check==3) break; |
NamSom | 3:a46061896235 | 86 | } |
NamSom | 3:a46061896235 | 87 | pattern2(); |
NamSom | 4:eae42fe39107 | 88 | return 0; |
NamSom | 3:a46061896235 | 89 | } |
NamSom | 3:a46061896235 | 90 | |
NamSom | 4:eae42fe39107 | 91 | int pattern2() |
NamSom | 3:a46061896235 | 92 | { |
NamSom | 3:a46061896235 | 93 | uint8_t check; |
NamSom | 3:a46061896235 | 94 | while(1) { |
NamSom | 3:a46061896235 | 95 | myled0 =1; |
NamSom | 3:a46061896235 | 96 | myled1 =1; |
NamSom | 3:a46061896235 | 97 | myled4 =1; |
NamSom | 3:a46061896235 | 98 | myled5 =1; |
NamSom | 3:a46061896235 | 99 | wait(1); |
NamSom | 3:a46061896235 | 100 | myled0 =0; |
NamSom | 3:a46061896235 | 101 | myled1 =0; |
NamSom | 3:a46061896235 | 102 | myled4 =0; |
NamSom | 3:a46061896235 | 103 | myled5 =0; |
NamSom | 3:a46061896235 | 104 | check=checkState(); |
NamSom | 4:eae42fe39107 | 105 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 106 | else if(check==3) break; |
NamSom | 3:a46061896235 | 107 | myled2 =1; |
NamSom | 3:a46061896235 | 108 | myled3 =1; |
NamSom | 3:a46061896235 | 109 | myled6 =1; |
NamSom | 3:a46061896235 | 110 | myled7 =1; |
NamSom | 3:a46061896235 | 111 | wait(1); |
NamSom | 3:a46061896235 | 112 | myled2 =0; |
NamSom | 3:a46061896235 | 113 | myled3 =0; |
NamSom | 3:a46061896235 | 114 | myled6 =0; |
NamSom | 3:a46061896235 | 115 | myled7 =0; |
NamSom | 3:a46061896235 | 116 | check=checkState(); |
NamSom | 4:eae42fe39107 | 117 | if(check==1) {return 1;} |
NamSom | 3:a46061896235 | 118 | else if(check==3) break; |
NamSom | 3:a46061896235 | 119 | } |
NamSom | 3:a46061896235 | 120 | pattern1(); |
NamSom | 4:eae42fe39107 | 121 | return 0; |
NamSom | 3:a46061896235 | 122 | } |
NamSom | 3:a46061896235 | 123 | |
Peeraya | 0:09e78c46c376 | 124 | |
Peeraya | 0:09e78c46c376 | 125 | int main() |
Peeraya | 0:09e78c46c376 | 126 | { |
Peeraya | 0:09e78c46c376 | 127 | |
Peeraya | 0:09e78c46c376 | 128 | uint8_t state_menu=0; |
Peeraya | 0:09e78c46c376 | 129 | uint8_t state_show=0; |
Peeraya | 0:09e78c46c376 | 130 | uint8_t state_exit =0; |
NamSom | 3:a46061896235 | 131 | uint8_t state_LED =0; |
NamSom | 4:eae42fe39107 | 132 | |
NamSom | 3:a46061896235 | 133 | myled0 = 0; |
NamSom | 3:a46061896235 | 134 | myled1 = 0; |
NamSom | 3:a46061896235 | 135 | myled2 = 0; |
NamSom | 3:a46061896235 | 136 | myled3 = 0; |
NamSom | 3:a46061896235 | 137 | myled4 = 0; |
NamSom | 3:a46061896235 | 138 | myled5 = 0; |
NamSom | 3:a46061896235 | 139 | myled6 = 0; |
NamSom | 3:a46061896235 | 140 | myled7 = 0; |
Peeraya | 0:09e78c46c376 | 141 | pc.printf("Select Mode\n"); |
Peeraya | 0:09e78c46c376 | 142 | while(1) { |
Peeraya | 0:09e78c46c376 | 143 | if(state_show == 0) { |
Peeraya | 0:09e78c46c376 | 144 | pc.printf("Menu\n"); |
Peeraya | 0:09e78c46c376 | 145 | pc.printf("1.Choose LED pattern\n"); |
Peeraya | 0:09e78c46c376 | 146 | pc.printf("2.Print status\n"); |
Peeraya | 0:09e78c46c376 | 147 | state_show =1; |
Peeraya | 0:09e78c46c376 | 148 | } |
Peeraya | 0:09e78c46c376 | 149 | if(pc.readable()) { |
Peeraya | 0:09e78c46c376 | 150 | data = pc.getc(); |
Peeraya | 0:09e78c46c376 | 151 | pc.printf("\n"); |
Peeraya | 0:09e78c46c376 | 152 | state_show =0; |
Peeraya | 0:09e78c46c376 | 153 | state_exit =0; |
Peeraya | 0:09e78c46c376 | 154 | |
Peeraya | 0:09e78c46c376 | 155 | switch(data) { |
Peeraya | 0:09e78c46c376 | 156 | case '1': |
Peeraya | 0:09e78c46c376 | 157 | do { |
Peeraya | 0:09e78c46c376 | 158 | if(state_menu == 0) { |
Peeraya | 0:09e78c46c376 | 159 | pc.printf("Choose LED pattern\n"); |
Peeraya | 0:09e78c46c376 | 160 | pc.printf("a.Pattern1\n"); |
Peeraya | 0:09e78c46c376 | 161 | pc.printf("d.Pattern2\n"); |
Peeraya | 0:09e78c46c376 | 162 | pc.printf("s.Exit\n"); |
Peeraya | 0:09e78c46c376 | 163 | state_menu = 1; |
Peeraya | 0:09e78c46c376 | 164 | } |
Peeraya | 0:09e78c46c376 | 165 | if(pc.readable()) { |
Peeraya | 0:09e78c46c376 | 166 | data = pc.getc(); |
Peeraya | 0:09e78c46c376 | 167 | pc.printf("\n"); |
Peeraya | 0:09e78c46c376 | 168 | state_menu=0; |
Peeraya | 0:09e78c46c376 | 169 | |
NamSom | 4:eae42fe39107 | 170 | if(data=='a'||data=='A') { |
NamSom | 3:a46061896235 | 171 | pattern1(); |
Peeraya | 0:09e78c46c376 | 172 | } |
NamSom | 3:a46061896235 | 173 | if(data=='d'||data=='D') { |
NamSom | 3:a46061896235 | 174 | pattern2(); |
NamSom | 3:a46061896235 | 175 | } |
NamSom | 3:a46061896235 | 176 | if(data=='s'||data=='S') { |
NamSom | 3:a46061896235 | 177 | state_exit = 1; |
NamSom | 3:a46061896235 | 178 | } |
NamSom | 3:a46061896235 | 179 | } |
Peeraya | 0:09e78c46c376 | 180 | |
Peeraya | 0:09e78c46c376 | 181 | } while(state_exit ==0); |
Peeraya | 0:09e78c46c376 | 182 | pc.printf("\n"); |
Peeraya | 0:09e78c46c376 | 183 | break; |
Peeraya | 0:09e78c46c376 | 184 | |
Peeraya | 0:09e78c46c376 | 185 | case '2': |
Peeraya | 0:09e78c46c376 | 186 | |
NamSom | 3:a46061896235 | 187 | if(state_menu == 0) { |
NamSom | 3:a46061896235 | 188 | pc.printf("LED status\n"); |
NamSom | 3:a46061896235 | 189 | state_menu = 1; |
NamSom | 3:a46061896235 | 190 | } |
NamSom | 3:a46061896235 | 191 | if(inbutton == 0) { |
NamSom | 3:a46061896235 | 192 | pc.printf("OFF\n"); |
NamSom | 3:a46061896235 | 193 | state_menu=1; |
NamSom | 3:a46061896235 | 194 | } |
NamSom | 3:a46061896235 | 195 | if(inbutton == 1) { |
NamSom | 3:a46061896235 | 196 | pc.printf("ON\n"); |
NamSom | 3:a46061896235 | 197 | state_menu=1; |
NamSom | 3:a46061896235 | 198 | } |
NamSom | 3:a46061896235 | 199 | |
Peeraya | 0:09e78c46c376 | 200 | pc.printf("\n\n"); |
Peeraya | 0:09e78c46c376 | 201 | break; |
Peeraya | 0:09e78c46c376 | 202 | |
Peeraya | 0:09e78c46c376 | 203 | default: |
Peeraya | 0:09e78c46c376 | 204 | pc.printf("plz select 1 or 2 only\n"); |
Peeraya | 0:09e78c46c376 | 205 | pc.printf("\n\n"); |
Peeraya | 0:09e78c46c376 | 206 | break; |
Peeraya | 0:09e78c46c376 | 207 | } |
Peeraya | 0:09e78c46c376 | 208 | } |
Peeraya | 0:09e78c46c376 | 209 | |
Peeraya | 0:09e78c46c376 | 210 | } |
Peeraya | 0:09e78c46c376 | 211 | } |