Jose M Pulido
/
razor
Revision 0:87f191bdb9ab, committed 2010-10-12
- Comitter:
- triff
- Date:
- Tue Oct 12 13:26:58 2010 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 87f191bdb9ab SerialRazor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SerialRazor.cpp Tue Oct 12 13:26:58 2010 +0000 @@ -0,0 +1,57 @@ + +#include "mbed.h" +#include "SerialRazor.h" + +SerialRazor::SerialRazor( size_t bufferSize, PinName tx, PinName rx ) : Serial( tx, rx ) { + + Serial::baud(57600); + attach( this, &SerialRazor::handleInterrupt ); + m_buff = (char *) malloc( bufferSize ); + m_buffSize = bufferSize; +} + + + +SerialRazor::~SerialRazor() +{ + if( m_buff ) + free( m_buff ); +} + +void SerialRazor::handleInterrupt() +{ + + while( Serial::readable()) + { + for(int i=0; i< m_buffSize; i++) { + m_buff[i] = Serial::getc(); + if(m_buff[i] == '\n') { + m_buff[i] = 0; + sscanf(m_buff,"!ANG:%f,%f,%f", &roll, &pitch, &yaw); + return; + } + } + + } +} + + + +float SerialRazor::getRoll(void){ + + return roll; + +} + +float SerialRazor::getPitch(void){ + + return pitch; + +} + +float SerialRazor::getYaw(void){ + + return yaw; + +} +
diff -r 000000000000 -r 87f191bdb9ab SerialRazor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SerialRazor.h Tue Oct 12 13:26:58 2010 +0000 @@ -0,0 +1,29 @@ +#pragma once + +// This is a buffered serial reading class, using the serial interrupt introduced in mbed library version 18 on 17/11/09 + +// In the simplest case, construct it with a buffer size at least equal to the largest message you +// expect your program to receive in one go. + +class SerialRazor : public Serial +{ +public: + SerialRazor( size_t bufferSize, PinName tx, PinName rx ); + virtual ~SerialRazor(); + float getRoll(void); + float getPitch(void); + float getYaw(void); + + + +private: + + void handleInterrupt(); + float roll; + float pitch; + float yaw; + char *m_buff; + uint16_t m_buffSize; + + +}; \ No newline at end of file
diff -r 000000000000 -r 87f191bdb9ab main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Oct 12 13:26:58 2010 +0000 @@ -0,0 +1,14 @@ + +#include "mbed.h" +#include "SerialRazor.h" + +Serial pc(USBTX, USBRX); + +int main() { + SerialRazor *Razor = new SerialRazor( 32, p13, p14); + while(1){ + wait(0.2); + pc.printf("Roll: %f\n\r", Razor->getRoll()); + } + +}
diff -r 000000000000 -r 87f191bdb9ab mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Oct 12 13:26:58 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0