lab3
Dependencies: mbed
main.cpp@0:c0fd379f0df0, 2017-11-24 (annotated)
- Committer:
- csggreen
- Date:
- Fri Nov 24 04:09:20 2017 +0000
- Revision:
- 0:c0fd379f0df0
lab3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
csggreen | 0:c0fd379f0df0 | 1 | #include "mbed.h" |
csggreen | 0:c0fd379f0df0 | 2 | |
csggreen | 0:c0fd379f0df0 | 3 | |
csggreen | 0:c0fd379f0df0 | 4 | Serial pc(D1, D0); |
csggreen | 0:c0fd379f0df0 | 5 | |
csggreen | 0:c0fd379f0df0 | 6 | DigitalOut gsled0(D2); |
csggreen | 0:c0fd379f0df0 | 7 | DigitalOut gsled1(D3); |
csggreen | 0:c0fd379f0df0 | 8 | DigitalOut gsled2(D4); |
csggreen | 0:c0fd379f0df0 | 9 | DigitalOut gsled3(D5); |
csggreen | 0:c0fd379f0df0 | 10 | DigitalOut gsled4(D6); |
csggreen | 0:c0fd379f0df0 | 11 | DigitalOut gsled5(D7); |
csggreen | 0:c0fd379f0df0 | 12 | DigitalOut gsled6(D8); |
csggreen | 0:c0fd379f0df0 | 13 | DigitalOut gsled7(D9); |
csggreen | 0:c0fd379f0df0 | 14 | DigitalIn sw_in1(D10); |
csggreen | 0:c0fd379f0df0 | 15 | DigitalIn sw_in2(D11); |
csggreen | 0:c0fd379f0df0 | 16 | DigitalIn sw_in3(D12); |
csggreen | 0:c0fd379f0df0 | 17 | int switchled; |
csggreen | 0:c0fd379f0df0 | 18 | int x =0; |
csggreen | 0:c0fd379f0df0 | 19 | |
csggreen | 0:c0fd379f0df0 | 20 | void ledout(){ |
csggreen | 0:c0fd379f0df0 | 21 | if(switchled==1){ |
csggreen | 0:c0fd379f0df0 | 22 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 23 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 24 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 25 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 26 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 27 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 28 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 29 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 30 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 31 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 32 | gsled5 = 1; |
csggreen | 0:c0fd379f0df0 | 33 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 34 | gsled6 = 1; |
csggreen | 0:c0fd379f0df0 | 35 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 36 | gsled7 = 1; |
csggreen | 0:c0fd379f0df0 | 37 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 38 | gsled7 = 0; |
csggreen | 0:c0fd379f0df0 | 39 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 40 | gsled6 = 0; |
csggreen | 0:c0fd379f0df0 | 41 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 42 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 43 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 44 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 45 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 46 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 47 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 48 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 49 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 50 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 51 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 52 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 53 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 54 | } |
csggreen | 0:c0fd379f0df0 | 55 | |
csggreen | 0:c0fd379f0df0 | 56 | else if(switchled==2){ |
csggreen | 0:c0fd379f0df0 | 57 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 58 | gsled7 = 1; |
csggreen | 0:c0fd379f0df0 | 59 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 60 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 61 | gsled7 = 0; |
csggreen | 0:c0fd379f0df0 | 62 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 63 | gsled6 = 1; |
csggreen | 0:c0fd379f0df0 | 64 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 65 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 66 | gsled6 = 0; |
csggreen | 0:c0fd379f0df0 | 67 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 68 | gsled5 = 1; |
csggreen | 0:c0fd379f0df0 | 69 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 70 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 71 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 72 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 73 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 74 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 75 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 76 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 77 | } |
csggreen | 0:c0fd379f0df0 | 78 | else if(switchled==3){ |
csggreen | 0:c0fd379f0df0 | 79 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 80 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 81 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 82 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 83 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 84 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 85 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 86 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 87 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 88 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 89 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 90 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 91 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 92 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 93 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 94 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 95 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 96 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 97 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 98 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 99 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 100 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 101 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 102 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 103 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 104 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 105 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 106 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 107 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 108 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 109 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 110 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 111 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 112 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 113 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 114 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 115 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 116 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 117 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 118 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 119 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 120 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 121 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 122 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 123 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 124 | gsled5 = 1; |
csggreen | 0:c0fd379f0df0 | 125 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 126 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 127 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 128 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 129 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 130 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 131 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 132 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 133 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 134 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 135 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 136 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 137 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 138 | gsled5 = 1; |
csggreen | 0:c0fd379f0df0 | 139 | gsled6 = 1; |
csggreen | 0:c0fd379f0df0 | 140 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 141 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 142 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 143 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 144 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 145 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 146 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 147 | gsled6 = 0; |
csggreen | 0:c0fd379f0df0 | 148 | wait(0.3); |
csggreen | 0:c0fd379f0df0 | 149 | gsled0 = 1; |
csggreen | 0:c0fd379f0df0 | 150 | gsled1 = 1; |
csggreen | 0:c0fd379f0df0 | 151 | gsled2 = 1; |
csggreen | 0:c0fd379f0df0 | 152 | gsled3 = 1; |
csggreen | 0:c0fd379f0df0 | 153 | gsled4 = 1; |
csggreen | 0:c0fd379f0df0 | 154 | gsled5 = 1; |
csggreen | 0:c0fd379f0df0 | 155 | gsled6 = 1; |
csggreen | 0:c0fd379f0df0 | 156 | gsled7 = 1; |
csggreen | 0:c0fd379f0df0 | 157 | wait(0.2); |
csggreen | 0:c0fd379f0df0 | 158 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 159 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 160 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 161 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 162 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 163 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 164 | gsled6 = 0; |
csggreen | 0:c0fd379f0df0 | 165 | gsled7 = 0; |
csggreen | 0:c0fd379f0df0 | 166 | wait(0.1); |
csggreen | 0:c0fd379f0df0 | 167 | |
csggreen | 0:c0fd379f0df0 | 168 | } |
csggreen | 0:c0fd379f0df0 | 169 | else { |
csggreen | 0:c0fd379f0df0 | 170 | gsled0 = 0; |
csggreen | 0:c0fd379f0df0 | 171 | gsled1 = 0; |
csggreen | 0:c0fd379f0df0 | 172 | gsled2 = 0; |
csggreen | 0:c0fd379f0df0 | 173 | gsled3 = 0; |
csggreen | 0:c0fd379f0df0 | 174 | gsled4 = 0; |
csggreen | 0:c0fd379f0df0 | 175 | gsled5 = 0; |
csggreen | 0:c0fd379f0df0 | 176 | gsled6 = 0; |
csggreen | 0:c0fd379f0df0 | 177 | gsled7 = 0; |
csggreen | 0:c0fd379f0df0 | 178 | } |
csggreen | 0:c0fd379f0df0 | 179 | |
csggreen | 0:c0fd379f0df0 | 180 | } |
csggreen | 0:c0fd379f0df0 | 181 | |
csggreen | 0:c0fd379f0df0 | 182 | |
csggreen | 0:c0fd379f0df0 | 183 | int main() |
csggreen | 0:c0fd379f0df0 | 184 | { |
csggreen | 0:c0fd379f0df0 | 185 | |
csggreen | 0:c0fd379f0df0 | 186 | uint8_t state_menu=0; |
csggreen | 0:c0fd379f0df0 | 187 | uint8_t state_show=0; |
csggreen | 0:c0fd379f0df0 | 188 | uint8_t state_exit =0; |
csggreen | 0:c0fd379f0df0 | 189 | uint8_t data; |
csggreen | 0:c0fd379f0df0 | 190 | |
csggreen | 0:c0fd379f0df0 | 191 | while(1) { |
csggreen | 0:c0fd379f0df0 | 192 | if(state_show == 0) { |
csggreen | 0:c0fd379f0df0 | 193 | pc.printf("************\n"); |
csggreen | 0:c0fd379f0df0 | 194 | pc.printf(" MENU \n"); |
csggreen | 0:c0fd379f0df0 | 195 | pc.printf("************\n"); |
csggreen | 0:c0fd379f0df0 | 196 | pc.printf("1.PLAY LED \n"); |
csggreen | 0:c0fd379f0df0 | 197 | pc.printf("2.READ SWITCH\n"); |
csggreen | 0:c0fd379f0df0 | 198 | state_show =1; |
csggreen | 0:c0fd379f0df0 | 199 | } |
csggreen | 0:c0fd379f0df0 | 200 | if(pc.readable()) { |
csggreen | 0:c0fd379f0df0 | 201 | data = pc.getc(); |
csggreen | 0:c0fd379f0df0 | 202 | pc.printf("\n"); |
csggreen | 0:c0fd379f0df0 | 203 | state_show =0; |
csggreen | 0:c0fd379f0df0 | 204 | state_exit =0; |
csggreen | 0:c0fd379f0df0 | 205 | |
csggreen | 0:c0fd379f0df0 | 206 | switch(data) { |
csggreen | 0:c0fd379f0df0 | 207 | case '1': |
csggreen | 0:c0fd379f0df0 | 208 | do { |
csggreen | 0:c0fd379f0df0 | 209 | if(state_menu == 0) { |
csggreen | 0:c0fd379f0df0 | 210 | pc.printf("PLAY LED\n"); |
csggreen | 0:c0fd379f0df0 | 211 | pc.printf("a.Pattern1\n"); |
csggreen | 0:c0fd379f0df0 | 212 | pc.printf("d.Pattern2\n"); |
csggreen | 0:c0fd379f0df0 | 213 | pc.printf("s.Pattern3 and Exit\n"); |
csggreen | 0:c0fd379f0df0 | 214 | state_menu = 1; |
csggreen | 0:c0fd379f0df0 | 215 | } |
csggreen | 0:c0fd379f0df0 | 216 | |
csggreen | 0:c0fd379f0df0 | 217 | if(pc.readable()) { |
csggreen | 0:c0fd379f0df0 | 218 | data = pc.getc(); |
csggreen | 0:c0fd379f0df0 | 219 | pc.printf("\n"); |
csggreen | 0:c0fd379f0df0 | 220 | state_menu=0; |
csggreen | 0:c0fd379f0df0 | 221 | |
csggreen | 0:c0fd379f0df0 | 222 | switch(data) { |
csggreen | 0:c0fd379f0df0 | 223 | |
csggreen | 0:c0fd379f0df0 | 224 | case 'a': |
csggreen | 0:c0fd379f0df0 | 225 | pc.printf("-->Pattern1<-- \n\n"); |
csggreen | 0:c0fd379f0df0 | 226 | switchled = 1; |
csggreen | 0:c0fd379f0df0 | 227 | ledout(); |
csggreen | 0:c0fd379f0df0 | 228 | break; |
csggreen | 0:c0fd379f0df0 | 229 | |
csggreen | 0:c0fd379f0df0 | 230 | case 'd': |
csggreen | 0:c0fd379f0df0 | 231 | pc.printf("-->pattern2<-- \n\n"); |
csggreen | 0:c0fd379f0df0 | 232 | switchled = 2; |
csggreen | 0:c0fd379f0df0 | 233 | ledout(); |
csggreen | 0:c0fd379f0df0 | 234 | break; |
csggreen | 0:c0fd379f0df0 | 235 | |
csggreen | 0:c0fd379f0df0 | 236 | case 's': |
csggreen | 0:c0fd379f0df0 | 237 | pc.printf("-->pattern3 and exit<-- \n\n"); |
csggreen | 0:c0fd379f0df0 | 238 | switchled = 3; |
csggreen | 0:c0fd379f0df0 | 239 | ledout(); |
csggreen | 0:c0fd379f0df0 | 240 | state_exit =1; |
csggreen | 0:c0fd379f0df0 | 241 | break; |
csggreen | 0:c0fd379f0df0 | 242 | default: |
csggreen | 0:c0fd379f0df0 | 243 | state_menu=0; |
csggreen | 0:c0fd379f0df0 | 244 | break; |
csggreen | 0:c0fd379f0df0 | 245 | } |
csggreen | 0:c0fd379f0df0 | 246 | } |
csggreen | 0:c0fd379f0df0 | 247 | } while(state_exit ==0); |
csggreen | 0:c0fd379f0df0 | 248 | pc.printf("\n"); |
csggreen | 0:c0fd379f0df0 | 249 | break; |
csggreen | 0:c0fd379f0df0 | 250 | |
csggreen | 0:c0fd379f0df0 | 251 | case '2': |
csggreen | 0:c0fd379f0df0 | 252 | |
csggreen | 0:c0fd379f0df0 | 253 | do { |
csggreen | 0:c0fd379f0df0 | 254 | if(state_menu == 0) { |
csggreen | 0:c0fd379f0df0 | 255 | pc.printf("Switch 1 status %d\n",sw_in1.read()); |
csggreen | 0:c0fd379f0df0 | 256 | pc.printf("Switch 2 status %d\n",sw_in2.read()); |
csggreen | 0:c0fd379f0df0 | 257 | pc.printf("Switch 3 status %d\n",sw_in3.read()); |
csggreen | 0:c0fd379f0df0 | 258 | state_menu = 1; |
csggreen | 0:c0fd379f0df0 | 259 | state_exit =1; |
csggreen | 0:c0fd379f0df0 | 260 | state_show =0; |
csggreen | 0:c0fd379f0df0 | 261 | |
csggreen | 0:c0fd379f0df0 | 262 | } |
csggreen | 0:c0fd379f0df0 | 263 | if(pc.readable()) { |
csggreen | 0:c0fd379f0df0 | 264 | data = pc.getc(); |
csggreen | 0:c0fd379f0df0 | 265 | pc.printf("\n"); |
csggreen | 0:c0fd379f0df0 | 266 | state_menu=0; |
csggreen | 0:c0fd379f0df0 | 267 | } |
csggreen | 0:c0fd379f0df0 | 268 | default: |
csggreen | 0:c0fd379f0df0 | 269 | state_menu=0; |
csggreen | 0:c0fd379f0df0 | 270 | break; |
csggreen | 0:c0fd379f0df0 | 271 | } |
csggreen | 0:c0fd379f0df0 | 272 | while(state_exit ==0); |
csggreen | 0:c0fd379f0df0 | 273 | pc.printf("\n"); |
csggreen | 0:c0fd379f0df0 | 274 | break; |
csggreen | 0:c0fd379f0df0 | 275 | |
csggreen | 0:c0fd379f0df0 | 276 | } |
csggreen | 0:c0fd379f0df0 | 277 | } |
csggreen | 0:c0fd379f0df0 | 278 | } |
csggreen | 0:c0fd379f0df0 | 279 | } |
csggreen | 0:c0fd379f0df0 | 280 |