Works with interrupts

Dependents:   Nucleo_UltrasonicHelloWorld Proj Nucleo_UltrasonicHelloWorld mbedTurtleCar ... more

Committer:
ejteb
Date:
Sun Nov 23 20:27:09 2014 +0000
Revision:
0:6aa04a8c8d4c
Child:
1:114e0698a5d2
Seems to work :)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ejteb 0:6aa04a8c8d4c 1 #ifndef MBED_ULTRASONIC_H
ejteb 0:6aa04a8c8d4c 2 #define MBED_ULTRASONIC_H
ejteb 0:6aa04a8c8d4c 3
ejteb 0:6aa04a8c8d4c 4 #include "mbed.h"
ejteb 0:6aa04a8c8d4c 5
ejteb 0:6aa04a8c8d4c 6 class ultrasonic
ejteb 0:6aa04a8c8d4c 7 {
ejteb 0:6aa04a8c8d4c 8 public:
ejteb 0:6aa04a8c8d4c 9 ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout);
ejteb 0:6aa04a8c8d4c 10 ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int), void onTrig(void),void onStartTimer(void)/*, Timer *t*/ );
ejteb 0:6aa04a8c8d4c 11 int getCurrentDistance(void);
ejteb 0:6aa04a8c8d4c 12 void pauseUpdates(void);
ejteb 0:6aa04a8c8d4c 13 void startUpdates(void);
ejteb 0:6aa04a8c8d4c 14 void attachOnUpdate(void method(int));
ejteb 0:6aa04a8c8d4c 15 void attachOnTrigger(void method(void));
ejteb 0:6aa04a8c8d4c 16 void attachOnStartTimer(void method(void));
ejteb 0:6aa04a8c8d4c 17 void changeUpdateSpeed(float updateSpeed);
ejteb 0:6aa04a8c8d4c 18 int isUpdated(void);
ejteb 0:6aa04a8c8d4c 19 float getUpdateSpeed();
ejteb 0:6aa04a8c8d4c 20 private:
ejteb 0:6aa04a8c8d4c 21 DigitalOut _trig;
ejteb 0:6aa04a8c8d4c 22 InterruptIn _echo;
ejteb 0:6aa04a8c8d4c 23 Timer _t;
ejteb 0:6aa04a8c8d4c 24 Timeout _tout;
ejteb 0:6aa04a8c8d4c 25 int _distance;
ejteb 0:6aa04a8c8d4c 26 float _updateSpeed;
ejteb 0:6aa04a8c8d4c 27 int start;
ejteb 0:6aa04a8c8d4c 28 int end;
ejteb 0:6aa04a8c8d4c 29 volatile int done;
ejteb 0:6aa04a8c8d4c 30 void (*_onUpdateMethod)(int);
ejteb 0:6aa04a8c8d4c 31 void (*_onTriggerMethod)(void);
ejteb 0:6aa04a8c8d4c 32 void (*_onStartTimerMethod)(void);
ejteb 0:6aa04a8c8d4c 33 void _startT(void);
ejteb 0:6aa04a8c8d4c 34 void _updateDist(void);
ejteb 0:6aa04a8c8d4c 35 void _startTrig(void);
ejteb 0:6aa04a8c8d4c 36 float _timeout;
ejteb 0:6aa04a8c8d4c 37
ejteb 0:6aa04a8c8d4c 38 int d;
ejteb 0:6aa04a8c8d4c 39 /*unsigned int tickcount;
ejteb 0:6aa04a8c8d4c 40 Ticker _ticker;
ejteb 0:6aa04a8c8d4c 41 void ticktock(void);*/
ejteb 0:6aa04a8c8d4c 42 };
ejteb 0:6aa04a8c8d4c 43 #endif