Libraries and Example of mbed parallel bus using I2C port expanders

Dependencies:   HDSP253X mbed PCF8574_Bus

Committer:
wim
Date:
Fri Aug 26 20:35:11 2011 +0000
Revision:
5:38b853bb1afa
Parent:
4:745fbbd5e4e5
Included Messages to Host

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 2:1dab1089c332 1 //------------------------------------------------------------//
wim 2:1dab1089c332 2 // Testing Stuff //
wim 2:1dab1089c332 3 //------------------------------------------------------------//
wim 2:1dab1089c332 4 void show_LEDS () {
wim 2:1dab1089c332 5 static int state = 0;
wim 2:1dab1089c332 6
wim 2:1dab1089c332 7 switch (state) {
wim 2:1dab1089c332 8 case 0:
wim 2:1dab1089c332 9 myled1 = 1;
wim 2:1dab1089c332 10 myled2 = 0;
wim 2:1dab1089c332 11 myled3 = 0;
wim 2:1dab1089c332 12 state = 1;
wim 2:1dab1089c332 13 break;
wim 2:1dab1089c332 14 case 1:
wim 2:1dab1089c332 15 myled1 = 0;
wim 2:1dab1089c332 16 myled2 = 1;
wim 2:1dab1089c332 17 myled3 = 0;
wim 2:1dab1089c332 18 state = 2;
wim 2:1dab1089c332 19 break;
wim 2:1dab1089c332 20 case 2:
wim 2:1dab1089c332 21 myled1 = 0;
wim 2:1dab1089c332 22 myled2 = 0;
wim 2:1dab1089c332 23 myled3 = 1;
wim 2:1dab1089c332 24 state = 0;
wim 2:1dab1089c332 25 break;
wim 2:1dab1089c332 26 }
wim 2:1dab1089c332 27 }
wim 2:1dab1089c332 28
wim 2:1dab1089c332 29
wim 2:1dab1089c332 30 void show_menu() {
wim 2:1dab1089c332 31 pc.printf("0: Exit\r");
wim 2:1dab1089c332 32 pc.printf("1: Show Menu\r");
wim 2:1dab1089c332 33 pc.printf("2: Send Message\r");
wim 2:1dab1089c332 34 pc.printf("3: Toggle Heartbeat\r");
wim 2:1dab1089c332 35 pc.printf("4: Show STANAGs\r");
wim 2:1dab1089c332 36 pc.printf("5: Set all STANAGs\r");
wim 2:1dab1089c332 37 pc.printf("6: Inc STANAG Code Idx\r");
wim 2:1dab1089c332 38 pc.printf("7: Inc STANAG Digit Idx\r");
wim 2:1dab1089c332 39 pc.printf("8: Inc STANAG Digit\r");
wim 2:1dab1089c332 40 pc.printf("9: Test I2C Databus\r");
wim 2:1dab1089c332 41 pc.printf("A: Test I2C Addressbus\r");
wim 4:745fbbd5e4e5 42 pc.printf("E: Test I2C Enablebus\r");
wim 4:745fbbd5e4e5 43 pc.printf("S: Test Status LEDs\r");
wim 4:745fbbd5e4e5 44 pc.printf("B: Test Brightness LEDs\r");
wim 4:745fbbd5e4e5 45 pc.printf("D: Test Display\r");
wim 4:745fbbd5e4e5 46 pc.printf("K: Test Keyboard\r");
wim 4:745fbbd5e4e5 47 pc.printf("N: Test STANAG\r");
wim 2:1dab1089c332 48 pc.printf("\r");
wim 2:1dab1089c332 49 }
wim 2:1dab1089c332 50
wim 2:1dab1089c332 51
wim 2:1dab1089c332 52 void testloop() {
wim 2:1dab1089c332 53 bool running=true;
wim 4:745fbbd5e4e5 54 bool run_test=true;
wim 2:1dab1089c332 55 char command;
wim 2:1dab1089c332 56 int count;
wim 2:1dab1089c332 57
wim 2:1dab1089c332 58 pc.printf("Start Test!\r");
wim 2:1dab1089c332 59 show_LEDS();
wim 2:1dab1089c332 60 show_menu();
wim 3:3fbfdec782f4 61
wim 5:38b853bb1afa 62 //make sure we see something
wim 5:38b853bb1afa 63 LF28A_status.set_brightness(BRT_MED);
wim 5:38b853bb1afa 64
wim 2:1dab1089c332 65 while(running) {
wim 2:1dab1089c332 66
wim 2:1dab1089c332 67 if(pc.readable()) {
wim 2:1dab1089c332 68 command = pc.getc();
wim 2:1dab1089c332 69 pc.printf("\r");
wim 2:1dab1089c332 70 show_LEDS();
wim 2:1dab1089c332 71
wim 2:1dab1089c332 72 switch (command) {
wim 2:1dab1089c332 73 case '0' :
wim 2:1dab1089c332 74 pc.printf("Done\r");
wim 2:1dab1089c332 75 running = false;
wim 2:1dab1089c332 76 break;
wim 2:1dab1089c332 77
wim 2:1dab1089c332 78 case '1' :
wim 2:1dab1089c332 79 show_menu();
wim 2:1dab1089c332 80 break;
wim 2:1dab1089c332 81
wim 2:1dab1089c332 82 case '2' :
wim 2:1dab1089c332 83 pc.printf("Hello World!\r");
wim 2:1dab1089c332 84 break;
wim 2:1dab1089c332 85
wim 2:1dab1089c332 86 case '3' :
wim 2:1dab1089c332 87 if (heartbeatflag){
wim 2:1dab1089c332 88 heartbeat_stop();
wim 2:1dab1089c332 89 }
wim 2:1dab1089c332 90 else {
wim 3:3fbfdec782f4 91 heartbeat_start();
wim 2:1dab1089c332 92 };
wim 2:1dab1089c332 93 break;
wim 2:1dab1089c332 94
wim 2:1dab1089c332 95 case '4' :
wim 2:1dab1089c332 96 pc.printf("Show STANAGs\r");
wim 2:1dab1089c332 97 for (int codeIdx=0; codeIdx < D_STANAG_CODES; codeIdx++) {
wim 2:1dab1089c332 98 pc.printf("Code[%d] = %d\r", codeIdx, STANAG_codes.getCode(codeIdx) );
wim 2:1dab1089c332 99 }
wim 2:1dab1089c332 100 break;
wim 2:1dab1089c332 101
wim 2:1dab1089c332 102 case '5' :
wim 2:1dab1089c332 103 pc.printf("Set STANAGs\r");
wim 2:1dab1089c332 104 for (int codeIdx=0; codeIdx < D_STANAG_CODES; codeIdx++) {
wim 2:1dab1089c332 105 STANAG_codes.setCode(codeIdx, 2000 + codeIdx );
wim 2:1dab1089c332 106 }
wim 2:1dab1089c332 107
wim 2:1dab1089c332 108 break;
wim 2:1dab1089c332 109
wim 2:1dab1089c332 110 case '6' :
wim 2:1dab1089c332 111 pc.printf("Inc STANAG Code Idx\r");
wim 2:1dab1089c332 112 pc.printf("New Idx = %d\r", STANAG_codes.incCodeIdx() );
wim 2:1dab1089c332 113
wim 2:1dab1089c332 114 break;
wim 2:1dab1089c332 115 case '7' :
wim 2:1dab1089c332 116 pc.printf("Inc STANAG Digit Idx\r");
wim 2:1dab1089c332 117 pc.printf("New Idx = %d\r", STANAG_codes.incDigitIdx() );
wim 2:1dab1089c332 118
wim 2:1dab1089c332 119 break;
wim 2:1dab1089c332 120
wim 2:1dab1089c332 121 case '8' :
wim 2:1dab1089c332 122 pc.printf("Inc STANAG Digit\r");
wim 2:1dab1089c332 123 pc.printf("New Digit = %d\r", STANAG_codes.incDigit() );
wim 2:1dab1089c332 124
wim 2:1dab1089c332 125 pc.printf("New Code = %4d\r", STANAG_codes.getCode() );
wim 2:1dab1089c332 126 break;
wim 2:1dab1089c332 127 case '9' :
wim 2:1dab1089c332 128 pc.printf("Test I2C Databus\r");
wim 2:1dab1089c332 129 pc.printf("Press any key to quit...");
wim 2:1dab1089c332 130 count=0;
wim 2:1dab1089c332 131 while(! pc.readable()) {
wim 2:1dab1089c332 132 myled2 = 1;
wim 2:1dab1089c332 133 wait(0.1);
wim 2:1dab1089c332 134 myled2 = 0;
wim 2:1dab1089c332 135 wait(0.1);
wim 2:1dab1089c332 136
wim 2:1dab1089c332 137 databus.write(count);
wim 2:1dab1089c332 138 //addressbus.write(count);
wim 2:1dab1089c332 139 //enablebus.chipselect(CS_DISP, HIGH);
wim 2:1dab1089c332 140 count = (count + 1) & 0xFF;
wim 2:1dab1089c332 141 }
wim 2:1dab1089c332 142
wim 2:1dab1089c332 143 command = pc.getc();
wim 2:1dab1089c332 144 pc.printf("..Done\r");
wim 2:1dab1089c332 145
wim 2:1dab1089c332 146 break;
wim 2:1dab1089c332 147 case 'A' :
wim 2:1dab1089c332 148 pc.printf("Test I2C Addressbus\r");
wim 2:1dab1089c332 149 pc.printf("Press any key to quit...");
wim 2:1dab1089c332 150 count=0;
wim 2:1dab1089c332 151 while(! pc.readable()) {
wim 2:1dab1089c332 152 myled2 = 1;
wim 2:1dab1089c332 153 wait(0.1);
wim 2:1dab1089c332 154 myled2 = 0;
wim 2:1dab1089c332 155 wait(0.1);
wim 2:1dab1089c332 156
wim 2:1dab1089c332 157 //databus.write(count);
wim 2:1dab1089c332 158 addressbus.write(count);
wim 2:1dab1089c332 159 //enablebus.chipselect(CS_DISP, HIGH);
wim 2:1dab1089c332 160 count = (count + 1) & 0xFF;
wim 2:1dab1089c332 161 }
wim 2:1dab1089c332 162
wim 2:1dab1089c332 163 command = pc.getc();
wim 2:1dab1089c332 164 pc.printf("..Done\r");
wim 2:1dab1089c332 165
wim 2:1dab1089c332 166 break;
wim 2:1dab1089c332 167
wim 4:745fbbd5e4e5 168 case 'E' :
wim 2:1dab1089c332 169 pc.printf("Test I2C Enablebus\r");
wim 2:1dab1089c332 170 pc.printf("Press any key to quit...");
wim 2:1dab1089c332 171 count=0;
wim 2:1dab1089c332 172 while(! pc.readable()) {
wim 2:1dab1089c332 173
wim 2:1dab1089c332 174 myled2 = 1;
wim 2:1dab1089c332 175 enablebus.chipselect(CS_SWITCH, LOW);
wim 2:1dab1089c332 176 wait(0.1);
wim 2:1dab1089c332 177 myled2 = 0;
wim 2:1dab1089c332 178 // enablebus.chipselect(CS_SWITCH, HIGH);
wim 2:1dab1089c332 179 wait(0.1);
wim 2:1dab1089c332 180
wim 2:1dab1089c332 181 myled2 = 1;
wim 2:1dab1089c332 182 enablebus.chipselect(LATCHEN_1, LOW);
wim 2:1dab1089c332 183 wait(0.1);
wim 2:1dab1089c332 184 myled2 = 0;
wim 2:1dab1089c332 185 // enablebus.chipselect(LATCHEN_1, HIGH);
wim 2:1dab1089c332 186 wait(0.1);
wim 2:1dab1089c332 187
wim 2:1dab1089c332 188 myled2 = 1;
wim 2:1dab1089c332 189 enablebus.chipselect(LATCHEN_2, LOW);
wim 2:1dab1089c332 190 wait(0.1);
wim 2:1dab1089c332 191 myled2 = 0;
wim 2:1dab1089c332 192 // enablebus.chipselect(LATCHEN_2, HIGH);
wim 2:1dab1089c332 193 wait(0.1);
wim 2:1dab1089c332 194
wim 2:1dab1089c332 195 myled2 = 1;
wim 2:1dab1089c332 196 enablebus.chipselect(CS_BRIGHT, LOW);
wim 2:1dab1089c332 197 wait(0.1);
wim 2:1dab1089c332 198 myled2 = 0;
wim 2:1dab1089c332 199 // enablebus.chipselect(CS_BRIGHT, HIGH);
wim 2:1dab1089c332 200 wait(0.1);
wim 2:1dab1089c332 201
wim 2:1dab1089c332 202 myled2 = 1;
wim 2:1dab1089c332 203 enablebus.chipselect(CS_DISP, LOW);
wim 2:1dab1089c332 204 wait(0.1);
wim 2:1dab1089c332 205 myled2 = 0;
wim 2:1dab1089c332 206 enablebus.chipselect(CS_DISP, HIGH);
wim 2:1dab1089c332 207 wait(0.1);
wim 2:1dab1089c332 208
wim 2:1dab1089c332 209 myled2 = 1;
wim 2:1dab1089c332 210 enablebus.reset(LOW);
wim 2:1dab1089c332 211 wait(0.1);
wim 2:1dab1089c332 212 myled2 = 0;
wim 2:1dab1089c332 213 enablebus.reset(HIGH);
wim 2:1dab1089c332 214 wait(0.1);
wim 2:1dab1089c332 215
wim 2:1dab1089c332 216 myled2 = 1;
wim 2:1dab1089c332 217 enablebus.nogo(LOW);
wim 2:1dab1089c332 218 wait(0.1);
wim 2:1dab1089c332 219 myled2 = 0;
wim 2:1dab1089c332 220 enablebus.nogo(HIGH);
wim 2:1dab1089c332 221 wait(0.1);
wim 2:1dab1089c332 222
wim 2:1dab1089c332 223 //databus.write(count);
wim 2:1dab1089c332 224 //addressbus.write(count);
wim 2:1dab1089c332 225 //count = (count + 1) & 0xFF;
wim 2:1dab1089c332 226 }
wim 2:1dab1089c332 227
wim 2:1dab1089c332 228 command = pc.getc();
wim 2:1dab1089c332 229 pc.printf("..Done\r");
wim 2:1dab1089c332 230
wim 2:1dab1089c332 231 break;
wim 2:1dab1089c332 232
wim 4:745fbbd5e4e5 233 case 'S' :
wim 2:1dab1089c332 234 pc.printf("Test Status LEDs\r");
wim 2:1dab1089c332 235 pc.printf("Press any key to quit...");
wim 2:1dab1089c332 236 count=0;
wim 2:1dab1089c332 237 while(! pc.readable()) {
wim 2:1dab1089c332 238 // LEDs On
wim 2:1dab1089c332 239 LF28A_status.NoGo(LED_ON);
wim 2:1dab1089c332 240 wait(0.1);
wim 2:1dab1089c332 241 LF28A_status.LED(LED_LASER, LED_ON);
wim 2:1dab1089c332 242 wait(0.1);
wim 2:1dab1089c332 243 LF28A_status.LED(LED_TEMP, LED_ON);
wim 2:1dab1089c332 244 wait(0.1);
wim 2:1dab1089c332 245
wim 2:1dab1089c332 246 LF28A_status.LED(LED_MULT, LED_ON);
wim 2:1dab1089c332 247 wait(0.1);
wim 2:1dab1089c332 248 LF28A_status.LED(LED_ENRGY, LED_ON);
wim 2:1dab1089c332 249 wait(0.1);
wim 2:1dab1089c332 250 LF28A_status.LED(LED_BATT, LED_ON);
wim 2:1dab1089c332 251 wait(0.1);
wim 2:1dab1089c332 252
wim 2:1dab1089c332 253 LF28A_status.LED(LED_DESIG, LED_ON);
wim 2:1dab1089c332 254 wait(0.1);
wim 2:1dab1089c332 255 LF28A_status.LED(LED_RANGE, LED_ON);
wim 2:1dab1089c332 256 wait(0.1);
wim 2:1dab1089c332 257 LF28A_status.LED(LED_CODE, LED_ON);
wim 2:1dab1089c332 258 wait(0.1);
wim 2:1dab1089c332 259
wim 2:1dab1089c332 260 LF28A_status.LED(LED_ADDR, LED_ON);
wim 2:1dab1089c332 261 wait(0.1);
wim 2:1dab1089c332 262 LF28A_status.LED(LED_FREQ, LED_ON);
wim 2:1dab1089c332 263 wait(0.1);
wim 2:1dab1089c332 264 LF28A_status.LED(LED_PATH, LED_ON);
wim 2:1dab1089c332 265 wait(0.1);
wim 2:1dab1089c332 266
wim 2:1dab1089c332 267 LF28A_status.backlight(LED_ON);
wim 2:1dab1089c332 268 wait(0.1);
wim 2:1dab1089c332 269
wim 2:1dab1089c332 270 // LEDs Off
wim 2:1dab1089c332 271 LF28A_status.NoGo(LED_OFF);
wim 2:1dab1089c332 272 wait(0.1);
wim 2:1dab1089c332 273 LF28A_status.LED(LED_LASER, LED_OFF);
wim 2:1dab1089c332 274 wait(0.1);
wim 2:1dab1089c332 275 LF28A_status.LED(LED_TEMP, LED_OFF);
wim 2:1dab1089c332 276 wait(0.1);
wim 2:1dab1089c332 277
wim 2:1dab1089c332 278 LF28A_status.LED(LED_MULT, LED_OFF);
wim 2:1dab1089c332 279 wait(0.1);
wim 2:1dab1089c332 280 LF28A_status.LED(LED_ENRGY, LED_OFF);
wim 2:1dab1089c332 281 wait(0.1);
wim 2:1dab1089c332 282 LF28A_status.LED(LED_BATT, LED_OFF);
wim 2:1dab1089c332 283 wait(0.1);
wim 2:1dab1089c332 284
wim 2:1dab1089c332 285 LF28A_status.LED(LED_DESIG, LED_OFF);
wim 2:1dab1089c332 286 wait(0.1);
wim 2:1dab1089c332 287 LF28A_status.LED(LED_RANGE, LED_OFF);
wim 2:1dab1089c332 288 wait(0.1);
wim 2:1dab1089c332 289 LF28A_status.LED(LED_CODE, LED_OFF);
wim 2:1dab1089c332 290 wait(0.1);
wim 2:1dab1089c332 291
wim 2:1dab1089c332 292 LF28A_status.LED(LED_ADDR, LED_OFF);
wim 2:1dab1089c332 293 wait(0.1);
wim 2:1dab1089c332 294 LF28A_status.LED(LED_FREQ, LED_OFF);
wim 2:1dab1089c332 295 wait(0.1);
wim 2:1dab1089c332 296 LF28A_status.LED(LED_PATH, LED_OFF);
wim 2:1dab1089c332 297 wait(0.1);
wim 2:1dab1089c332 298
wim 2:1dab1089c332 299 LF28A_status.backlight(LED_OFF);
wim 2:1dab1089c332 300 wait(0.1);
wim 2:1dab1089c332 301 }
wim 2:1dab1089c332 302
wim 2:1dab1089c332 303 command = pc.getc();
wim 2:1dab1089c332 304 pc.printf("..Done\r");
wim 2:1dab1089c332 305
wim 2:1dab1089c332 306 break;
wim 2:1dab1089c332 307
wim 4:745fbbd5e4e5 308 case 'B' :
wim 2:1dab1089c332 309 pc.printf("Test Brightness LEDs\r");
wim 2:1dab1089c332 310 pc.printf("Press any key to quit...");
wim 2:1dab1089c332 311
wim 2:1dab1089c332 312 // LEDs On
wim 2:1dab1089c332 313 LF28A_status.NoGo(LED_ON);
wim 2:1dab1089c332 314 LF28A_status.LED(LED_LASER, LED_ON);
wim 2:1dab1089c332 315 LF28A_status.LED(LED_TEMP, LED_ON);
wim 2:1dab1089c332 316
wim 2:1dab1089c332 317 while(! pc.readable()) {
wim 2:1dab1089c332 318 LF28A_status.set_brightness(BRT_LOW);
wim 2:1dab1089c332 319 wait(0.5);
wim 2:1dab1089c332 320 LF28A_status.set_brightness(BRT_MED);
wim 2:1dab1089c332 321 wait(0.5);
wim 5:38b853bb1afa 322 // LF28A_status.set_brightness(BRT_HIGH);
wim 5:38b853bb1afa 323 // wait(0.5);
wim 2:1dab1089c332 324 LF28A_status.set_brightness(BRT_OFF);
wim 2:1dab1089c332 325 wait(0.5);
wim 2:1dab1089c332 326 }
wim 2:1dab1089c332 327 // LEDs Off
wim 2:1dab1089c332 328 LF28A_status.NoGo(LED_OFF);
wim 2:1dab1089c332 329 LF28A_status.LED(LED_LASER, LED_OFF);
wim 2:1dab1089c332 330 LF28A_status.LED(LED_TEMP, LED_OFF);
wim 2:1dab1089c332 331
wim 2:1dab1089c332 332 LF28A_status.set_brightness(BRT_LOW);
wim 2:1dab1089c332 333
wim 2:1dab1089c332 334 command = pc.getc();
wim 2:1dab1089c332 335 pc.printf("..Done\r");
wim 2:1dab1089c332 336
wim 3:3fbfdec782f4 337 break;
wim 3:3fbfdec782f4 338
wim 4:745fbbd5e4e5 339 case 'D' :
wim 3:3fbfdec782f4 340 pc.printf("Test Display\r");
wim 3:3fbfdec782f4 341 pc.printf("Press any key to continue...");
wim 3:3fbfdec782f4 342
wim 3:3fbfdec782f4 343 LF28A_display.cls();
wim 3:3fbfdec782f4 344 LF28A_display.putc('H');
wim 3:3fbfdec782f4 345 LF28A_display.putc('i');
wim 3:3fbfdec782f4 346 LF28A_display.putc('-');
wim 3:3fbfdec782f4 347 LF28A_display.putc('W');
wim 3:3fbfdec782f4 348 LF28A_display.putc('i');
wim 3:3fbfdec782f4 349 LF28A_display.putc('m');
wim 3:3fbfdec782f4 350 LF28A_display.putc('-');
wim 3:3fbfdec782f4 351
wim 3:3fbfdec782f4 352 while(! pc.readable()) {
wim 3:3fbfdec782f4 353 }
wim 3:3fbfdec782f4 354 command = pc.getc();
wim 3:3fbfdec782f4 355
wim 3:3fbfdec782f4 356 pc.printf("Test printf\r\n");
wim 3:3fbfdec782f4 357
wim 3:3fbfdec782f4 358 LF28A_display.locate (0);
wim 3:3fbfdec782f4 359 LF28A_display.printf ("%s=%d", "Rng", 2);
wim 3:3fbfdec782f4 360
wim 3:3fbfdec782f4 361 while(! pc.readable()) {
wim 3:3fbfdec782f4 362 }
wim 3:3fbfdec782f4 363 command = pc.getc();
wim 3:3fbfdec782f4 364
wim 3:3fbfdec782f4 365 LF28A_display.locate (4);
wim 3:3fbfdec782f4 366 LF28A_display.printf (" ");
wim 3:3fbfdec782f4 367
wim 3:3fbfdec782f4 368 LF28A_display.locate (4);
wim 3:3fbfdec782f4 369 LF28A_display.printf ("%d", 123);
wim 3:3fbfdec782f4 370
wim 3:3fbfdec782f4 371 while(! pc.readable()) {
wim 3:3fbfdec782f4 372 }
wim 3:3fbfdec782f4 373 command = pc.getc();
wim 3:3fbfdec782f4 374
wim 3:3fbfdec782f4 375 LF28A_display.cls();
wim 3:3fbfdec782f4 376 LF28A_display.printf ("%s", "Hello...");
wim 3:3fbfdec782f4 377
wim 3:3fbfdec782f4 378 while(! pc.readable()) {
wim 3:3fbfdec782f4 379 }
wim 3:3fbfdec782f4 380 command = pc.getc();
wim 3:3fbfdec782f4 381
wim 3:3fbfdec782f4 382 pc.printf("Test Flash\r\n");
wim 3:3fbfdec782f4 383 LF28A_display.set_flash_mode(true);
wim 3:3fbfdec782f4 384 for (int i=0; i<8; i++) {
wim 3:3fbfdec782f4 385 LF28A_display.set_char_flash_state(true, i);
wim 3:3fbfdec782f4 386 while(! pc.readable()) {
wim 3:3fbfdec782f4 387 }
wim 3:3fbfdec782f4 388 command = pc.getc();
wim 3:3fbfdec782f4 389 LF28A_display.set_char_flash_state(false, i);
wim 3:3fbfdec782f4 390 }
wim 3:3fbfdec782f4 391
wim 3:3fbfdec782f4 392 LF28A_display.set_flash_mode(false);
wim 3:3fbfdec782f4 393
wim 3:3fbfdec782f4 394 pc.printf("..Done\r");
wim 3:3fbfdec782f4 395
wim 4:745fbbd5e4e5 396 break;
wim 4:745fbbd5e4e5 397
wim 4:745fbbd5e4e5 398 case 'K' :
wim 4:745fbbd5e4e5 399 pc.printf("Test Keyboard\r");
wim 4:745fbbd5e4e5 400 pc.printf("Press any key to continue...");
wim 4:745fbbd5e4e5 401
wim 4:745fbbd5e4e5 402
wim 4:745fbbd5e4e5 403 while(! pc.readable()) {
wim 4:745fbbd5e4e5 404 if (LF28A_keyboard.readable()) {
wim 4:745fbbd5e4e5 405 pc.printf(".");
wim 4:745fbbd5e4e5 406
wim 4:745fbbd5e4e5 407 keycode = LF28A_keyboard.getkey();
wim 4:745fbbd5e4e5 408 switch (keycode) {
wim 4:745fbbd5e4e5 409 case KEY_MODE :
wim 4:745fbbd5e4e5 410 pc.printf("Mode\r");
wim 4:745fbbd5e4e5 411 break;
wim 4:745fbbd5e4e5 412 case KEY_EDIT_PATH :
wim 4:745fbbd5e4e5 413 pc.printf("Edit\r");
wim 4:745fbbd5e4e5 414 break;
wim 4:745fbbd5e4e5 415 case KEY_BRIGHT :
wim 4:745fbbd5e4e5 416 pc.printf("Bright\r");
wim 4:745fbbd5e4e5 417 break;
wim 4:745fbbd5e4e5 418 case KEY_GRAT_RT :
wim 4:745fbbd5e4e5 419 pc.printf("Grat\r");
wim 4:745fbbd5e4e5 420 break;
wim 4:745fbbd5e4e5 421 case KEY_F_L_UP :
wim 4:745fbbd5e4e5 422 pc.printf("F-L\r");
wim 4:745fbbd5e4e5 423 break;
wim 4:745fbbd5e4e5 424 case KEY_FIRE:
wim 4:745fbbd5e4e5 425 pc.printf("Fire\r");
wim 4:745fbbd5e4e5 426 break;
wim 4:745fbbd5e4e5 427 case KEY_NONE:
wim 4:745fbbd5e4e5 428 pc.printf("None\r");
wim 4:745fbbd5e4e5 429 break;
wim 4:745fbbd5e4e5 430
wim 4:745fbbd5e4e5 431 default:
wim 4:745fbbd5e4e5 432 pc.printf("Oops\r");
wim 4:745fbbd5e4e5 433 break;
wim 4:745fbbd5e4e5 434 }; //switch
wim 4:745fbbd5e4e5 435
wim 4:745fbbd5e4e5 436 } //if
wim 4:745fbbd5e4e5 437 } //while
wim 4:745fbbd5e4e5 438 command = pc.getc();
wim 4:745fbbd5e4e5 439
wim 4:745fbbd5e4e5 440 pc.printf("..Done\r");
wim 4:745fbbd5e4e5 441
wim 4:745fbbd5e4e5 442 break;
wim 2:1dab1089c332 443
wim 4:745fbbd5e4e5 444
wim 4:745fbbd5e4e5 445 case 'N' :
wim 4:745fbbd5e4e5 446 pc.printf("Test STANAG\r");
wim 5:38b853bb1afa 447
wim 5:38b853bb1afa 448 STANAG_codes.setDigitIdx(0);
wim 4:745fbbd5e4e5 449 pc.printf("Code = %04d; CodeIdx=%d; DigitIdx=%d;\r", STANAG_codes.getCode(), STANAG_codes.getCodeIdx(), STANAG_codes.getDigitIdx() );
wim 4:745fbbd5e4e5 450
wim 4:745fbbd5e4e5 451 LF28A_display.locate (0);
wim 4:745fbbd5e4e5 452 LF28A_display.printf (" %04d",STANAG_codes.getCode() );
wim 4:745fbbd5e4e5 453 LF28A_display.set_flash_mode(true);
wim 4:745fbbd5e4e5 454
wim 4:745fbbd5e4e5 455 run_test=true;
wim 4:745fbbd5e4e5 456 while(run_test) {
wim 4:745fbbd5e4e5 457 while(! pc.readable()) {
wim 4:745fbbd5e4e5 458 }
wim 4:745fbbd5e4e5 459 command = pc.getc();
wim 4:745fbbd5e4e5 460 switch(command) {
wim 4:745fbbd5e4e5 461 case '0': run_test=false;
wim 4:745fbbd5e4e5 462 break;
wim 4:745fbbd5e4e5 463 case '1':
wim 4:745fbbd5e4e5 464 pc.printf("0: Exit\r");
wim 4:745fbbd5e4e5 465 pc.printf("1: Show Menu\r");
wim 4:745fbbd5e4e5 466 pc.printf("f: Next Code\r");
wim 4:745fbbd5e4e5 467 pc.printf("g: Next Digit\r");
wim 4:745fbbd5e4e5 468 pc.printf("u: Inc Digit\r");
wim 4:745fbbd5e4e5 469 break;
wim 4:745fbbd5e4e5 470
wim 4:745fbbd5e4e5 471 case 'f':
wim 4:745fbbd5e4e5 472 pc.printf("New Code Idx = %d\r", STANAG_codes.incCodeIdx() );
wim 4:745fbbd5e4e5 473 pc.printf("New Code = %04d\r", STANAG_codes.getCode() );
wim 4:745fbbd5e4e5 474
wim 4:745fbbd5e4e5 475 LF28A_display.locate (0);
wim 4:745fbbd5e4e5 476 LF28A_display.printf (" %04d",STANAG_codes.getCode() );
wim 4:745fbbd5e4e5 477
wim 4:745fbbd5e4e5 478 break;
wim 4:745fbbd5e4e5 479 case 'g':
wim 4:745fbbd5e4e5 480 // Disable previous flashing digit
wim 4:745fbbd5e4e5 481 LF28A_display.set_char_flash_state(false, 4 + STANAG_codes.getDigitIdx());
wim 4:745fbbd5e4e5 482
wim 4:745fbbd5e4e5 483 // Incr selected digit
wim 4:745fbbd5e4e5 484 pc.printf("New Digit Idx = %d\r", STANAG_codes.incDigitIdx() );
wim 4:745fbbd5e4e5 485
wim 4:745fbbd5e4e5 486 // Enable current flashing digit
wim 4:745fbbd5e4e5 487 LF28A_display.set_char_flash_state(true, 4 + STANAG_codes.getDigitIdx());
wim 4:745fbbd5e4e5 488
wim 4:745fbbd5e4e5 489 break;
wim 4:745fbbd5e4e5 490 case 'u':
wim 4:745fbbd5e4e5 491 pc.printf("New Digit = %d\r", STANAG_codes.incDigit() );
wim 4:745fbbd5e4e5 492 pc.printf("New Code = %04d\r", STANAG_codes.getCode() );
wim 4:745fbbd5e4e5 493
wim 4:745fbbd5e4e5 494 LF28A_display.locate (0);
wim 4:745fbbd5e4e5 495 LF28A_display.printf (" %04d",STANAG_codes.getCode() );
wim 4:745fbbd5e4e5 496
wim 4:745fbbd5e4e5 497 break;
wim 4:745fbbd5e4e5 498 default:
wim 4:745fbbd5e4e5 499 pc.printf("Oops\r");
wim 4:745fbbd5e4e5 500 break;
wim 4:745fbbd5e4e5 501 }; //switch
wim 4:745fbbd5e4e5 502 } //while run_test
wim 4:745fbbd5e4e5 503
wim 4:745fbbd5e4e5 504
wim 4:745fbbd5e4e5 505 LF28A_display.set_flash_mode(false);
wim 4:745fbbd5e4e5 506
wim 4:745fbbd5e4e5 507 pc.printf("..Done\r");
wim 4:745fbbd5e4e5 508
wim 4:745fbbd5e4e5 509 break;
wim 4:745fbbd5e4e5 510
wim 2:1dab1089c332 511 } //switch
wim 2:1dab1089c332 512 }//if
wim 2:1dab1089c332 513 }//while
wim 2:1dab1089c332 514
wim 2:1dab1089c332 515 pc.printf("End Test!\r\r");
wim 2:1dab1089c332 516 }
wim 2:1dab1089c332 517
wim 2:1dab1089c332 518 //------------------------------------------------------------//
wim 2:1dab1089c332 519 // End Testing Stuff //
wim 2:1dab1089c332 520 //------------------------------------------------------------//
wim 2:1dab1089c332 521