Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ABBlind OneButton USBDevice mbed
main.cpp@0:722dcbb1475a, 2016-09-21 (annotated)
- 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?
User | Revision | Line number | New 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 | } |