program to experiment with microbit

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?

UserRevisionLine numberNew 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 }