David Estévez
/
ABBlind_hardware_test
Hardware test for ABBlind pedal shield
Diff: main.cpp
- Revision:
- 0:a0be5f15a662
- Child:
- 1:33de2dfc6e25
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Dec 05 20:52:50 2015 +0000 @@ -0,0 +1,110 @@ +/********************************************************** + * ABBlind test + ********************************************************** + * + * Program to test that all the hardware works correctly + * + ********************************************************** + * Author: David Estévez Fernández (DEF) + * License: GPLv3 + * + * A UC3Music project! Check out our website: + * http://uc3music.github.io/ + */ +#include "mbed.h" +#include "PinDetect.h" + + +//-- Peripherals definition +DigitalOut LED_01[] = {P1_24, P1_17}; +DigitalOut LED_02[] = {P1_27, P1_25}; +DigitalOut LED_03[] = {P0_9, P0_2}; +DigitalOut AUDIO_SWITCH(P0_14); +PinDetect PUSH_BUTTON(P0_17, PullUp); + +//-- Other constant definitions +static const uint8_t COLOR1 = 0; +static const uint8_t COLOR2 = 1; + + +//-- Other definitions +volatile uint8_t state = 0; + +void start_sequence(uint16_t ms = 200) +{ + DigitalOut* leds[] = {&LED_01[0], &LED_02[0], + &LED_03[0], &LED_01[1], + &LED_02[1], &LED_03[1]}; + + for (uint8_t i = 0; i < 6; i++) + { + for (uint8_t j = 0; j < 6; j++) + { + i == j ? *leds[j] = 1 : *leds[j] = 0; + } + wait_ms(ms); + } +} + +void button_pressed() +{ + state = (state+1) % 4; +} + + +int main() { + + //-- Setup button + PUSH_BUTTON.attach_asserted(&button_pressed()); + + //- Setup audio switch + AUDIO_SWITCH = 0; + + start_sequence(); + start_sequence(); + + while(1) { + if (state == 0) + { + LED_01[0] = 0; + LED_02[0] = 0; + LED_03[0] = 0; + LED_01[1] = 0; + LED_02[1] = 0; + LED_03[1] = 0; + AUDIO_SWITCH = 0; + } + else if (state == 1) + { + LED_01[0] = 1; + LED_02[0] = 1; + LED_03[0] = 1; + LED_01[1] = 0; + LED_02[1] = 0; + LED_03[1] = 0; + AUDIO_SWITCH = 0; + } + else if (state == 2) + { + LED_01[0] = 0; + LED_02[0] = 0; + LED_03[0] = 0; + LED_01[1] = 1; + LED_02[1] = 1; + LED_03[1] = 1; + AUDIO_SWITCH = 0; + } + else if (state == 3) + { + LED_01[0] = 1; + LED_02[0] = 1; + LED_03[0] = 1; + LED_01[1] = 1; + LED_02[1] = 1; + LED_03[1] = 1; + AUDIO_SWITCH = 0; + } + + wait_ms(500); + } +}