jim hamblen
/
Laser_Rangefinder
Demo program for the Parallax Laser Range Finder
main.cpp
- Committer:
- 4180_1
- Date:
- 2011-11-06
- Revision:
- 0:ccc26a94788d
File content as of revision 0:ccc26a94788d:
#include "mbed.h" //Demo program for the Parallax Laser Range Finder // DigitalOut myled(LED1); Serial pc(USBTX, USBRX); Serial lrf(p9,p10); int main() { int mm_range=0; char lrfchar=0; //Print prompt pc.printf("\f\nLaser Range Finder demo program\n\r"); //Delay for lrf power on startup wait(2.5); lrf.baud(115200); // lrf autobaud setup do { lrf.putc('U'); pc.putc('.'); wait(.2); if (lrf.readable()) lrfchar = lrf.getc(); } while (lrfchar != ':'); pc.printf("\n\r"); // clear out any extra characters - just in case while (lrf.readable()) { lrfchar = lrf.getc(); } // Loop taking range readings forever while (1) { myled=1; lrf.putc('B'); //Take Binary range reading // read in the four bytes for the range in mm (MSB first) mm_range=0; mm_range=lrf.getc(); mm_range=(mm_range<<8)|lrf.getc(); mm_range=(mm_range<<8)|lrf.getc(); mm_range=(mm_range<<8)|lrf.getc(); myled=0; //eat CR & ":" command prompt do { lrfchar=lrf.getc(); } while (lrfchar != ':'); //Display readings on PC Virtual Com port via USB cable pc.printf("Range is %d mm\n\r",mm_range); } }