Eurobot_2012_Secondary

Dependencies:   mbed tvmet

Committer:
narshu
Date:
Fri Apr 20 21:32:24 2012 +0000
Revision:
0:fbfafa6bf5f9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:fbfafa6bf5f9 1
narshu 0:fbfafa6bf5f9 2 #ifndef MBED_RFSRF05_H
narshu 0:fbfafa6bf5f9 3 #define MBED_RFSRF05_H
narshu 0:fbfafa6bf5f9 4
narshu 0:fbfafa6bf5f9 5 #include "mbed.h"
narshu 0:fbfafa6bf5f9 6 #include "RF12B.h"
narshu 0:fbfafa6bf5f9 7
narshu 0:fbfafa6bf5f9 8 #define CODE0 0x22
narshu 0:fbfafa6bf5f9 9 #define CODE1 0x44
narshu 0:fbfafa6bf5f9 10 #define CODE2 0x88
narshu 0:fbfafa6bf5f9 11
narshu 0:fbfafa6bf5f9 12 /* SAMPLE IMPLEMENTATION!
narshu 0:fbfafa6bf5f9 13 RFSRF05 my_srf(p13,p21,p22,p23,p24,p25,p26,p5,p6,p7,p8,p9);
narshu 0:fbfafa6bf5f9 14
narshu 0:fbfafa6bf5f9 15
narshu 0:fbfafa6bf5f9 16 void callbinmain(int num, float dist) {
narshu 0:fbfafa6bf5f9 17 //Here is where you deal with your brand new reading ;D
narshu 0:fbfafa6bf5f9 18 }
narshu 0:fbfafa6bf5f9 19
narshu 0:fbfafa6bf5f9 20 int main() {
narshu 0:fbfafa6bf5f9 21 pc.printf("Hello World of RobotSonar!\r\n");
narshu 0:fbfafa6bf5f9 22 my_srf.callbackfunc = callbinmain;
narshu 0:fbfafa6bf5f9 23
narshu 0:fbfafa6bf5f9 24 while (1);
narshu 0:fbfafa6bf5f9 25 }
narshu 0:fbfafa6bf5f9 26
narshu 0:fbfafa6bf5f9 27 */
narshu 0:fbfafa6bf5f9 28
narshu 0:fbfafa6bf5f9 29 class DummyCT;
narshu 0:fbfafa6bf5f9 30
narshu 0:fbfafa6bf5f9 31 class RFSRF05 {
narshu 0:fbfafa6bf5f9 32 public:
narshu 0:fbfafa6bf5f9 33
narshu 0:fbfafa6bf5f9 34 RFSRF05(
narshu 0:fbfafa6bf5f9 35 PinName trigger,
narshu 0:fbfafa6bf5f9 36 PinName echo0,
narshu 0:fbfafa6bf5f9 37 PinName echo1,
narshu 0:fbfafa6bf5f9 38 PinName echo2,
narshu 0:fbfafa6bf5f9 39 PinName echo3,
narshu 0:fbfafa6bf5f9 40 PinName echo4,
narshu 0:fbfafa6bf5f9 41 PinName echo5,
narshu 0:fbfafa6bf5f9 42 PinName SDI,
narshu 0:fbfafa6bf5f9 43 PinName SDO,
narshu 0:fbfafa6bf5f9 44 PinName SCK,
narshu 0:fbfafa6bf5f9 45 PinName NCS,
narshu 0:fbfafa6bf5f9 46 PinName NIRQ);
narshu 0:fbfafa6bf5f9 47
narshu 0:fbfafa6bf5f9 48 /** A non-blocking function that will return the last measurement
narshu 0:fbfafa6bf5f9 49 *
narshu 0:fbfafa6bf5f9 50 * @returns floating point representation of distance in mm
narshu 0:fbfafa6bf5f9 51 */
narshu 0:fbfafa6bf5f9 52 float read0();
narshu 0:fbfafa6bf5f9 53 float read1();
narshu 0:fbfafa6bf5f9 54 float read2();
narshu 0:fbfafa6bf5f9 55 float read(unsigned int beaconnum);
narshu 0:fbfafa6bf5f9 56
narshu 0:fbfafa6bf5f9 57
narshu 0:fbfafa6bf5f9 58 /** A assigns a callback function when a new reading is available **/
narshu 0:fbfafa6bf5f9 59 void (*callbackfunc)(int beaconnum, float distance);
narshu 0:fbfafa6bf5f9 60 DummyCT* callbackobj;
narshu 0:fbfafa6bf5f9 61 void (DummyCT::*mcallbackfunc)(int beaconnum, float distance, float variance);
narshu 0:fbfafa6bf5f9 62
narshu 0:fbfafa6bf5f9 63 //triggers a read
narshu 0:fbfafa6bf5f9 64
narshu 0:fbfafa6bf5f9 65
narshu 0:fbfafa6bf5f9 66 /** A short hand way of using the read function */
narshu 0:fbfafa6bf5f9 67 //operator float();
narshu 0:fbfafa6bf5f9 68
narshu 0:fbfafa6bf5f9 69 private :
narshu 0:fbfafa6bf5f9 70 RF12B _rf;
narshu 0:fbfafa6bf5f9 71 DigitalOut _trigger;
narshu 0:fbfafa6bf5f9 72 InterruptIn _echo0;
narshu 0:fbfafa6bf5f9 73 InterruptIn _echo1;
narshu 0:fbfafa6bf5f9 74 InterruptIn _echo2;
narshu 0:fbfafa6bf5f9 75 InterruptIn _echo3;
narshu 0:fbfafa6bf5f9 76 InterruptIn _echo4;
narshu 0:fbfafa6bf5f9 77 InterruptIn _echo5;
narshu 0:fbfafa6bf5f9 78 Timer _timer;
narshu 0:fbfafa6bf5f9 79 Ticker _ticker;
narshu 0:fbfafa6bf5f9 80 void _startRange();
narshu 0:fbfafa6bf5f9 81 void _rising (void);
narshu 0:fbfafa6bf5f9 82 void _falling (void);
narshu 0:fbfafa6bf5f9 83 float _dist[3];
narshu 0:fbfafa6bf5f9 84 char _code[3];
narshu 0:fbfafa6bf5f9 85 int _beacon_counter;
narshu 0:fbfafa6bf5f9 86 bool ValidPulse;
narshu 0:fbfafa6bf5f9 87 bool expValidPulse;
narshu 0:fbfafa6bf5f9 88
narshu 0:fbfafa6bf5f9 89 };
narshu 0:fbfafa6bf5f9 90
narshu 0:fbfafa6bf5f9 91 #endif