Eurobot2012_Primary

Dependencies:   mbed Eurobot_2012_Primary

Committer:
narshu
Date:
Wed Oct 17 22:22:47 2012 +0000
Revision:
26:0995f61cb7b8
Parent:
17:bafcef1c3579
Eurobot 2012 Primary;

Who changed what in which revision?

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