Libraries and Example of mbed parallel bus using I2C port expanders
Dependencies: HDSP253X mbed PCF8574_Bus
Diff: Testloop.h
- Revision:
- 2:1dab1089c332
- Child:
- 3:3fbfdec782f4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Testloop.h Sat Aug 20 12:49:44 2011 +0000 @@ -0,0 +1,342 @@ +//------------------------------------------------------------// +// Testing Stuff // +//------------------------------------------------------------// +void show_LEDS () { + static int state = 0; + + switch (state) { + case 0: + myled1 = 1; + myled2 = 0; + myled3 = 0; + state = 1; + break; + case 1: + myled1 = 0; + myled2 = 1; + myled3 = 0; + state = 2; + break; + case 2: + myled1 = 0; + myled2 = 0; + myled3 = 1; + state = 0; + break; + } +} + + +void show_menu() { + pc.printf("0: Exit\r"); + pc.printf("1: Show Menu\r"); + pc.printf("2: Send Message\r"); + pc.printf("3: Toggle Heartbeat\r"); + pc.printf("4: Show STANAGs\r"); + pc.printf("5: Set all STANAGs\r"); + pc.printf("6: Inc STANAG Code Idx\r"); + pc.printf("7: Inc STANAG Digit Idx\r"); + pc.printf("8: Inc STANAG Digit\r"); + pc.printf("9: Test I2C Databus\r"); + pc.printf("A: Test I2C Addressbus\r"); + pc.printf("B: Test I2C Enablebus\r"); + pc.printf("C: Test Status LEDs\r"); + pc.printf("D: Test Brightness LEDs\r"); + pc.printf("\r"); +} + + +void testloop() { + bool running=true; + char command; + int count; + + pc.printf("Start Test!\r"); + show_LEDS(); + show_menu(); + myled4=1; + while(running) { + + if(pc.readable()) { + command = pc.getc(); + pc.printf("\r"); + show_LEDS(); + + switch (command) { + case '0' : + pc.printf("Done\r"); + running = false; + break; + + case '1' : + show_menu(); + break; + + case '2' : + pc.printf("Hello World!\r"); + break; + + case '3' : + if (heartbeatflag){ + heartbeat_stop(); + } + else { + heartbeat.start(); + }; + break; + + case '4' : + pc.printf("Show STANAGs\r"); + for (int codeIdx=0; codeIdx < D_STANAG_CODES; codeIdx++) { + pc.printf("Code[%d] = %d\r", codeIdx, STANAG_codes.getCode(codeIdx) ); + } + break; + + case '5' : + pc.printf("Set STANAGs\r"); + for (int codeIdx=0; codeIdx < D_STANAG_CODES; codeIdx++) { + STANAG_codes.setCode(codeIdx, 2000 + codeIdx ); + } + + break; + + case '6' : + pc.printf("Inc STANAG Code Idx\r"); + pc.printf("New Idx = %d\r", STANAG_codes.incCodeIdx() ); + + break; + case '7' : + pc.printf("Inc STANAG Digit Idx\r"); + pc.printf("New Idx = %d\r", STANAG_codes.incDigitIdx() ); + + break; + + case '8' : + pc.printf("Inc STANAG Digit\r"); + pc.printf("New Digit = %d\r", STANAG_codes.incDigit() ); + + pc.printf("New Code = %4d\r", STANAG_codes.getCode() ); + break; + case '9' : + pc.printf("Test I2C Databus\r"); + pc.printf("Press any key to quit..."); + count=0; + while(! pc.readable()) { + myled2 = 1; + wait(0.1); + myled2 = 0; + wait(0.1); + + databus.write(count); + //addressbus.write(count); + //enablebus.chipselect(CS_DISP, HIGH); + count = (count + 1) & 0xFF; + } + + command = pc.getc(); + pc.printf("..Done\r"); + + break; + case 'A' : + pc.printf("Test I2C Addressbus\r"); + pc.printf("Press any key to quit..."); + count=0; + while(! pc.readable()) { + myled2 = 1; + wait(0.1); + myled2 = 0; + wait(0.1); + + //databus.write(count); + addressbus.write(count); + //enablebus.chipselect(CS_DISP, HIGH); + count = (count + 1) & 0xFF; + } + + command = pc.getc(); + pc.printf("..Done\r"); + + break; + + case 'B' : + pc.printf("Test I2C Enablebus\r"); + pc.printf("Press any key to quit..."); + count=0; + while(! pc.readable()) { + + myled2 = 1; + enablebus.chipselect(CS_SWITCH, LOW); + wait(0.1); + myled2 = 0; +// enablebus.chipselect(CS_SWITCH, HIGH); + wait(0.1); + + myled2 = 1; + enablebus.chipselect(LATCHEN_1, LOW); + wait(0.1); + myled2 = 0; +// enablebus.chipselect(LATCHEN_1, HIGH); + wait(0.1); + + myled2 = 1; + enablebus.chipselect(LATCHEN_2, LOW); + wait(0.1); + myled2 = 0; +// enablebus.chipselect(LATCHEN_2, HIGH); + wait(0.1); + + myled2 = 1; + enablebus.chipselect(CS_BRIGHT, LOW); + wait(0.1); + myled2 = 0; +// enablebus.chipselect(CS_BRIGHT, HIGH); + wait(0.1); + + myled2 = 1; + enablebus.chipselect(CS_DISP, LOW); + wait(0.1); + myled2 = 0; + enablebus.chipselect(CS_DISP, HIGH); + wait(0.1); + + myled2 = 1; + enablebus.reset(LOW); + wait(0.1); + myled2 = 0; + enablebus.reset(HIGH); + wait(0.1); + + myled2 = 1; + enablebus.nogo(LOW); + wait(0.1); + myled2 = 0; + enablebus.nogo(HIGH); + wait(0.1); + + //databus.write(count); + //addressbus.write(count); + //count = (count + 1) & 0xFF; + } + + command = pc.getc(); + pc.printf("..Done\r"); + + break; + + case 'C' : + pc.printf("Test Status LEDs\r"); + pc.printf("Press any key to quit..."); + count=0; + while(! pc.readable()) { + // LEDs On + LF28A_status.NoGo(LED_ON); + wait(0.1); + LF28A_status.LED(LED_LASER, LED_ON); + wait(0.1); + LF28A_status.LED(LED_TEMP, LED_ON); + wait(0.1); + + LF28A_status.LED(LED_MULT, LED_ON); + wait(0.1); + LF28A_status.LED(LED_ENRGY, LED_ON); + wait(0.1); + LF28A_status.LED(LED_BATT, LED_ON); + wait(0.1); + + LF28A_status.LED(LED_DESIG, LED_ON); + wait(0.1); + LF28A_status.LED(LED_RANGE, LED_ON); + wait(0.1); + LF28A_status.LED(LED_CODE, LED_ON); + wait(0.1); + + LF28A_status.LED(LED_ADDR, LED_ON); + wait(0.1); + LF28A_status.LED(LED_FREQ, LED_ON); + wait(0.1); + LF28A_status.LED(LED_PATH, LED_ON); + wait(0.1); + + LF28A_status.backlight(LED_ON); + wait(0.1); + + // LEDs Off + LF28A_status.NoGo(LED_OFF); + wait(0.1); + LF28A_status.LED(LED_LASER, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_TEMP, LED_OFF); + wait(0.1); + + LF28A_status.LED(LED_MULT, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_ENRGY, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_BATT, LED_OFF); + wait(0.1); + + LF28A_status.LED(LED_DESIG, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_RANGE, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_CODE, LED_OFF); + wait(0.1); + + LF28A_status.LED(LED_ADDR, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_FREQ, LED_OFF); + wait(0.1); + LF28A_status.LED(LED_PATH, LED_OFF); + wait(0.1); + + LF28A_status.backlight(LED_OFF); + wait(0.1); + } + + command = pc.getc(); + pc.printf("..Done\r"); + + break; + + case 'D' : + pc.printf("Test Brightness LEDs\r"); + pc.printf("Press any key to quit..."); + + // LEDs On + LF28A_status.NoGo(LED_ON); + LF28A_status.LED(LED_LASER, LED_ON); + LF28A_status.LED(LED_TEMP, LED_ON); + + while(! pc.readable()) { + LF28A_status.set_brightness(BRT_LOW); + wait(0.5); + LF28A_status.set_brightness(BRT_MED); + wait(0.5); + LF28A_status.set_brightness(BRT_HIGH); + wait(0.5); + LF28A_status.set_brightness(BRT_OFF); + wait(0.5); + } + // LEDs Off + LF28A_status.NoGo(LED_OFF); + LF28A_status.LED(LED_LASER, LED_OFF); + LF28A_status.LED(LED_TEMP, LED_OFF); + + LF28A_status.set_brightness(BRT_LOW); + + command = pc.getc(); + pc.printf("..Done\r"); + + break; + + } //switch + }//if + }//while + + pc.printf("End Test!\r\r"); +} + +//------------------------------------------------------------// +// End Testing Stuff // +//------------------------------------------------------------// +