David Estévez / Mbed 2 deprecated ABBlind

Dependencies:   ABBlind OneButton USBDevice mbed

Dependents:   ABBlind

Committer:
def
Date:
Wed Sep 21 22:18:07 2016 +0000
Revision:
0:722dcbb1475a
Child:
1:60fb226f2402
Add PinDetect

Who changed what in which revision?

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