Hardware test for ABBlind pedal shield

Dependencies:   PinDetect mbed

Committer:
def
Date:
Sat Dec 05 21:15:27 2015 +0000
Revision:
1:33de2dfc6e25
Parent:
0:a0be5f15a662
Working hardware test

Who changed what in which revision?

UserRevisionLine numberNew 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 1:33de2dfc6e25 58 PUSH_BUTTON.attach_asserted(&button_pressed);
def 1:33de2dfc6e25 59 PUSH_BUTTON.setSampleFrequency();
def 0:a0be5f15a662 60
def 0:a0be5f15a662 61 //- Setup audio switch
def 0:a0be5f15a662 62 AUDIO_SWITCH = 0;
def 0:a0be5f15a662 63
def 0:a0be5f15a662 64 start_sequence();
def 0:a0be5f15a662 65 start_sequence();
def 0:a0be5f15a662 66
def 0:a0be5f15a662 67 while(1) {
def 0:a0be5f15a662 68 if (state == 0)
def 0:a0be5f15a662 69 {
def 0:a0be5f15a662 70 LED_01[0] = 0;
def 0:a0be5f15a662 71 LED_02[0] = 0;
def 0:a0be5f15a662 72 LED_03[0] = 0;
def 0:a0be5f15a662 73 LED_01[1] = 0;
def 0:a0be5f15a662 74 LED_02[1] = 0;
def 0:a0be5f15a662 75 LED_03[1] = 0;
def 0:a0be5f15a662 76 AUDIO_SWITCH = 0;
def 0:a0be5f15a662 77 }
def 0:a0be5f15a662 78 else if (state == 1)
def 0:a0be5f15a662 79 {
def 0:a0be5f15a662 80 LED_01[0] = 1;
def 0:a0be5f15a662 81 LED_02[0] = 1;
def 0:a0be5f15a662 82 LED_03[0] = 1;
def 0:a0be5f15a662 83 LED_01[1] = 0;
def 0:a0be5f15a662 84 LED_02[1] = 0;
def 0:a0be5f15a662 85 LED_03[1] = 0;
def 1:33de2dfc6e25 86 AUDIO_SWITCH = 1;
def 0:a0be5f15a662 87 }
def 0:a0be5f15a662 88 else if (state == 2)
def 0:a0be5f15a662 89 {
def 0:a0be5f15a662 90 LED_01[0] = 0;
def 0:a0be5f15a662 91 LED_02[0] = 0;
def 0:a0be5f15a662 92 LED_03[0] = 0;
def 0:a0be5f15a662 93 LED_01[1] = 1;
def 0:a0be5f15a662 94 LED_02[1] = 1;
def 0:a0be5f15a662 95 LED_03[1] = 1;
def 0:a0be5f15a662 96 AUDIO_SWITCH = 0;
def 0:a0be5f15a662 97 }
def 0:a0be5f15a662 98 else if (state == 3)
def 0:a0be5f15a662 99 {
def 0:a0be5f15a662 100 LED_01[0] = 1;
def 0:a0be5f15a662 101 LED_02[0] = 1;
def 0:a0be5f15a662 102 LED_03[0] = 1;
def 0:a0be5f15a662 103 LED_01[1] = 1;
def 0:a0be5f15a662 104 LED_02[1] = 1;
def 0:a0be5f15a662 105 LED_03[1] = 1;
def 1:33de2dfc6e25 106 AUDIO_SWITCH = 1;
def 0:a0be5f15a662 107 }
def 0:a0be5f15a662 108
def 0:a0be5f15a662 109 wait_ms(500);
def 0:a0be5f15a662 110 }
def 0:a0be5f15a662 111 }