lab3

Dependencies:   mbed

Committer:
csggreen
Date:
Fri Nov 24 04:09:20 2017 +0000
Revision:
0:c0fd379f0df0
lab3

Who changed what in which revision?

UserRevisionLine numberNew 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