David Estévez
/
ABBlind_hardware_test
Hardware test for ABBlind pedal shield
main.cpp@0:a0be5f15a662, 2015-12-05 (annotated)
- Committer:
- def
- Date:
- Sat Dec 05 20:52:50 2015 +0000
- Revision:
- 0:a0be5f15a662
- Child:
- 1:33de2dfc6e25
First version of test program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
def | 0:a0be5f15a662 | 1 | /********************************************************** |
def | 0:a0be5f15a662 | 2 | * ABBlind test |
def | 0:a0be5f15a662 | 3 | ********************************************************** |
def | 0:a0be5f15a662 | 4 | * |
def | 0:a0be5f15a662 | 5 | * Program to test that all the hardware works correctly |
def | 0:a0be5f15a662 | 6 | * |
def | 0:a0be5f15a662 | 7 | ********************************************************** |
def | 0:a0be5f15a662 | 8 | * Author: David Estévez Fernández (DEF) |
def | 0:a0be5f15a662 | 9 | * License: GPLv3 |
def | 0:a0be5f15a662 | 10 | * |
def | 0:a0be5f15a662 | 11 | * A UC3Music project! Check out our website: |
def | 0:a0be5f15a662 | 12 | * http://uc3music.github.io/ |
def | 0:a0be5f15a662 | 13 | */ |
def | 0:a0be5f15a662 | 14 | #include "mbed.h" |
def | 0:a0be5f15a662 | 15 | #include "PinDetect.h" |
def | 0:a0be5f15a662 | 16 | |
def | 0:a0be5f15a662 | 17 | |
def | 0:a0be5f15a662 | 18 | //-- Peripherals definition |
def | 0:a0be5f15a662 | 19 | DigitalOut LED_01[] = {P1_24, P1_17}; |
def | 0:a0be5f15a662 | 20 | DigitalOut LED_02[] = {P1_27, P1_25}; |
def | 0:a0be5f15a662 | 21 | DigitalOut LED_03[] = {P0_9, P0_2}; |
def | 0:a0be5f15a662 | 22 | DigitalOut AUDIO_SWITCH(P0_14); |
def | 0:a0be5f15a662 | 23 | PinDetect PUSH_BUTTON(P0_17, PullUp); |
def | 0:a0be5f15a662 | 24 | |
def | 0:a0be5f15a662 | 25 | //-- Other constant definitions |
def | 0:a0be5f15a662 | 26 | static const uint8_t COLOR1 = 0; |
def | 0:a0be5f15a662 | 27 | static const uint8_t COLOR2 = 1; |
def | 0:a0be5f15a662 | 28 | |
def | 0:a0be5f15a662 | 29 | |
def | 0:a0be5f15a662 | 30 | //-- Other definitions |
def | 0:a0be5f15a662 | 31 | volatile uint8_t state = 0; |
def | 0:a0be5f15a662 | 32 | |
def | 0:a0be5f15a662 | 33 | void start_sequence(uint16_t ms = 200) |
def | 0:a0be5f15a662 | 34 | { |
def | 0:a0be5f15a662 | 35 | DigitalOut* leds[] = {&LED_01[0], &LED_02[0], |
def | 0:a0be5f15a662 | 36 | &LED_03[0], &LED_01[1], |
def | 0:a0be5f15a662 | 37 | &LED_02[1], &LED_03[1]}; |
def | 0:a0be5f15a662 | 38 | |
def | 0:a0be5f15a662 | 39 | for (uint8_t i = 0; i < 6; i++) |
def | 0:a0be5f15a662 | 40 | { |
def | 0:a0be5f15a662 | 41 | for (uint8_t j = 0; j < 6; j++) |
def | 0:a0be5f15a662 | 42 | { |
def | 0:a0be5f15a662 | 43 | i == j ? *leds[j] = 1 : *leds[j] = 0; |
def | 0:a0be5f15a662 | 44 | } |
def | 0:a0be5f15a662 | 45 | wait_ms(ms); |
def | 0:a0be5f15a662 | 46 | } |
def | 0:a0be5f15a662 | 47 | } |
def | 0:a0be5f15a662 | 48 | |
def | 0:a0be5f15a662 | 49 | void button_pressed() |
def | 0:a0be5f15a662 | 50 | { |
def | 0:a0be5f15a662 | 51 | state = (state+1) % 4; |
def | 0:a0be5f15a662 | 52 | } |
def | 0:a0be5f15a662 | 53 | |
def | 0:a0be5f15a662 | 54 | |
def | 0:a0be5f15a662 | 55 | int main() { |
def | 0:a0be5f15a662 | 56 | |
def | 0:a0be5f15a662 | 57 | //-- Setup button |
def | 0:a0be5f15a662 | 58 | PUSH_BUTTON.attach_asserted(&button_pressed()); |
def | 0:a0be5f15a662 | 59 | |
def | 0:a0be5f15a662 | 60 | //- Setup audio switch |
def | 0:a0be5f15a662 | 61 | AUDIO_SWITCH = 0; |
def | 0:a0be5f15a662 | 62 | |
def | 0:a0be5f15a662 | 63 | start_sequence(); |
def | 0:a0be5f15a662 | 64 | start_sequence(); |
def | 0:a0be5f15a662 | 65 | |
def | 0:a0be5f15a662 | 66 | while(1) { |
def | 0:a0be5f15a662 | 67 | if (state == 0) |
def | 0:a0be5f15a662 | 68 | { |
def | 0:a0be5f15a662 | 69 | LED_01[0] = 0; |
def | 0:a0be5f15a662 | 70 | LED_02[0] = 0; |
def | 0:a0be5f15a662 | 71 | LED_03[0] = 0; |
def | 0:a0be5f15a662 | 72 | LED_01[1] = 0; |
def | 0:a0be5f15a662 | 73 | LED_02[1] = 0; |
def | 0:a0be5f15a662 | 74 | LED_03[1] = 0; |
def | 0:a0be5f15a662 | 75 | AUDIO_SWITCH = 0; |
def | 0:a0be5f15a662 | 76 | } |
def | 0:a0be5f15a662 | 77 | else if (state == 1) |
def | 0:a0be5f15a662 | 78 | { |
def | 0:a0be5f15a662 | 79 | LED_01[0] = 1; |
def | 0:a0be5f15a662 | 80 | LED_02[0] = 1; |
def | 0:a0be5f15a662 | 81 | LED_03[0] = 1; |
def | 0:a0be5f15a662 | 82 | LED_01[1] = 0; |
def | 0:a0be5f15a662 | 83 | LED_02[1] = 0; |
def | 0:a0be5f15a662 | 84 | LED_03[1] = 0; |
def | 0:a0be5f15a662 | 85 | AUDIO_SWITCH = 0; |
def | 0:a0be5f15a662 | 86 | } |
def | 0:a0be5f15a662 | 87 | else if (state == 2) |
def | 0:a0be5f15a662 | 88 | { |
def | 0:a0be5f15a662 | 89 | LED_01[0] = 0; |
def | 0:a0be5f15a662 | 90 | LED_02[0] = 0; |
def | 0:a0be5f15a662 | 91 | LED_03[0] = 0; |
def | 0:a0be5f15a662 | 92 | LED_01[1] = 1; |
def | 0:a0be5f15a662 | 93 | LED_02[1] = 1; |
def | 0:a0be5f15a662 | 94 | LED_03[1] = 1; |
def | 0:a0be5f15a662 | 95 | AUDIO_SWITCH = 0; |
def | 0:a0be5f15a662 | 96 | } |
def | 0:a0be5f15a662 | 97 | else if (state == 3) |
def | 0:a0be5f15a662 | 98 | { |
def | 0:a0be5f15a662 | 99 | LED_01[0] = 1; |
def | 0:a0be5f15a662 | 100 | LED_02[0] = 1; |
def | 0:a0be5f15a662 | 101 | LED_03[0] = 1; |
def | 0:a0be5f15a662 | 102 | LED_01[1] = 1; |
def | 0:a0be5f15a662 | 103 | LED_02[1] = 1; |
def | 0:a0be5f15a662 | 104 | LED_03[1] = 1; |
def | 0:a0be5f15a662 | 105 | AUDIO_SWITCH = 0; |
def | 0:a0be5f15a662 | 106 | } |
def | 0:a0be5f15a662 | 107 | |
def | 0:a0be5f15a662 | 108 | wait_ms(500); |
def | 0:a0be5f15a662 | 109 | } |
def | 0:a0be5f15a662 | 110 | } |