DigitalIn,Timer を使用した ボール検知用ライブラリ
Dependents: CatPot_SensorRight_F CatPot_SensorRight_T
Revision 0:bb38fe5771fb, committed 2015-02-26
- Comitter:
- ryuna
- Date:
- Thu Feb 26 05:30:39 2015 +0000
- Commit message:
- this program is use meny loop . ???????????
Changed in this revision
IRM2121.cpp | Show annotated file Show diff for this revision Revisions of this file |
IRM2121.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r bb38fe5771fb IRM2121.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IRM2121.cpp Thu Feb 26 05:30:39 2015 +0000 @@ -0,0 +1,51 @@ +/* mbed Ping Library respected Library !! + * + * make interruptin_mod by bousiya03 + * + */ + + +#include "IRM2121.h" +#include "mbed.h" + +IRM2121::IRM2121(PinName IRM_PIN) + : _pin(IRM_PIN), _timer() +{ + +} + +unsigned int IRM2121::Read(void) +// 0 means not valid. +{ + + + _timer.reset(); + _timer.start(); + + while(_pin){ + if(_timer.read_us() > NAKATA){ + _timer.stop(); + return NOT_F; + } + } + + _timer.reset(); + + while(!_pin){ + if(_timer.read_us() > NAKATA){ + _timer.stop(); + return NOT_F; + } + } + _Time = _timer.read_us(); + while(_pin){ + if((_timer.read_us() -_Time) > NAKATA){ + _timer.stop(); + return NOT_F; + } + } + + _Time = _timer.read_us() - _Time; + _timer.stop(); + return _Time; +}
diff -r 000000000000 -r bb38fe5771fb IRM2121.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IRM2121.h Thu Feb 26 05:30:39 2015 +0000 @@ -0,0 +1,62 @@ + + + #ifndef MBED_IRM_H + #define MBED_IRM_H + +#include "mbed.h" + +#define NAKATA 833 //周期833us +#define NOT_F 0 + +/** IRM2121 class, based on an DigitalIn pin, and a timer + * use RoboCup Junior Soccer to find PULSE BALL. + + + * Example: + * @code + * // Set Digital and read sensor. + * #include "mbed.h" + * #include "IRM2121.h" + * IRM2121 IR(p21); + * + * int main() { + * int length; + + * while(1) { + * + * IR.Set(); + * wait_ms(20); //check _Busy 1 &_Valid 0 ....config just wait time. + * length = IR.Read(); + * } + * } + * @endcode + */ +class IRM2121 { + public: + /** Create a IRM2121 object connected to the specified InterruptIn pin + * + * @param IRM_PIN InterruptIn pin to connect to + */ + IRM2121(PinName IRM_PIN); + + unsigned int Read (void); + /** Set a IRM2121 Interrupt Pin + * + * @param none + */ + + /** Read the result + * + * @param none + */ + + private: + + DigitalIn _pin; + Timer _timer; + + unsigned int _Time; + + }; + + #endif \ No newline at end of file