program to experiment with microbit
main.cpp@2:9c5448e60f15, 2016-10-04 (annotated)
- Committer:
- isaeldiaz@developer.mbed.org
- Date:
- Tue Oct 04 21:23:14 2016 +0200
- Revision:
- 2:9c5448e60f15
- Parent:
- 1:464fc8833089
The echo functions do not attach to the InterruptIn class, not sure why
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
isaeldiaz | 0:b630f8a79965 | 1 | |
isaeldiaz | 0:b630f8a79965 | 2 | #include "MicroBit.h" |
isaeldiaz@developer.mbed.org | 1:464fc8833089 | 3 | #include "MicrobitUltrasound.h" |
isaeldiaz | 0:b630f8a79965 | 4 | |
isaeldiaz | 0:b630f8a79965 | 5 | enum eDirection { COAST, FORWARD, REVERSE, BRAKE}; |
isaeldiaz | 0:b630f8a79965 | 6 | MicroBit uBit; |
isaeldiaz | 0:b630f8a79965 | 7 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 8 | MicrobitUltrasound sonar(MICROBIT_PIN_P1,MICROBIT_PIN_BUTTON_A); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 9 | TimedInterruptIn eventIn(MICROBIT_PIN_BUTTON_A); |
isaeldiaz | 0:b630f8a79965 | 10 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 11 | void onPressedB(MicroBitEvent e) |
isaeldiaz | 0:b630f8a79965 | 12 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 13 | int duration = e.timestamp; |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 14 | uBit.serial.printf("B%d, ", duration); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 15 | } |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 16 | void onPressedA(MicroBitEvent e) |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 17 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 18 | int duration = e.timestamp; |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 19 | uBit.serial.printf("A%d, ", duration); |
isaeldiaz | 0:b630f8a79965 | 20 | } |
isaeldiaz | 0:b630f8a79965 | 21 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 22 | void onPulse() |
isaeldiaz | 0:b630f8a79965 | 23 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 24 | uBit.serial.printf("it works!"); |
isaeldiaz | 0:b630f8a79965 | 25 | } |
isaeldiaz | 0:b630f8a79965 | 26 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 27 | void onTrigger(MicroBitEvent e) |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 28 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 29 | uBit.serial.printf("."); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 30 | } |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 31 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 32 | |
isaeldiaz | 0:b630f8a79965 | 33 | |
isaeldiaz | 0:b630f8a79965 | 34 | int main() |
isaeldiaz | 0:b630f8a79965 | 35 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 36 | // // Initialise the micro:bit runtime. |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 37 | // uBit.init(); |
isaeldiaz | 0:b630f8a79965 | 38 | uBit.serial.printf("Initializing\n"); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 39 | uBit.display.scroll("1"); |
isaeldiaz | 0:b630f8a79965 | 40 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 41 | // uBit.messageBus.listen(MICROBIT_ID_ULTRASOUND, MICROBIT_ULTRASOUND_EVT_ECHO_PULSE_LO, onPulse, MESSAGE_BUS_LISTENER_IMMEDIATE); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 42 | // uBit.messageBus.listen(MICROBIT_ID_ULTRASOUND, MICROBIT_ULTRASOUND_EVT_TRIGGER, onTrigger, MESSAGE_BUS_LISTENER_IMMEDIATE); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 43 | // sonar.eventOn(MICROBIT_ULTRASOUND_EVT_TRIGGER); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 44 | // sonar.eventOn(MICROBIT_ULTRASOUND_EVT_ECHO_PULSE_LO); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 45 | //sonar.start(); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 46 | //sonar.setPeriod(3000); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 47 | //sonar.onEchoRise(); |
isaeldiaz | 0:b630f8a79965 | 48 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 49 | eventIn.rise(&onPulse); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 50 | //uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onPressedA); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 51 | uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onPressedB); |
isaeldiaz | 0:b630f8a79965 | 52 | |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 53 | while(1) |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 54 | { |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 55 | fiber_sleep(3000); |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 56 | } |
isaeldiaz@developer.mbed.org | 2:9c5448e60f15 | 57 | |
isaeldiaz | 0:b630f8a79965 | 58 | release_fiber(); |
isaeldiaz | 0:b630f8a79965 | 59 | } |