IRM2121のfork
Fork of IRM2121 by
IRM2121.cpp
- Committer:
- ryuna
- Date:
- 2014-11-09
- Revision:
- 0:fd5c1ea78a7c
- Child:
- 1:1f7a3a98a5f5
File content as of revision 0:fd5c1ea78a7c:
/* mbed Ping Library * * */ #include "IRM2121.h" #include "mbed.h" IRM2121::IRM2121(PinName IRM_PIN) : _event(IRM_PIN) , _timer() { _event.rise(this,&IRM2121::_Stop ); _event.fall(this,&IRM2121::_Start ); _event.disable_irq(); _Flag = false; } void IRM2121::_Start(void) { _Flag = true; _Valid = false; // start the timere, and invalidate the current time. _Busy = true; _timer.start(); _Time = _timer.read_us(); } void IRM2121::_Stop(void) { if(_Flag == true){ _Flag = false; _Valid = true; // When it stops, update the time _Busy = false; _Time = _timer.read_us()-_Time; _event.disable_irq(); } } void IRM2121::Set() { _event.enable_irq(); } int IRM2121::Read() // -1 means not valid. { if(_Valid && ~_Busy) return (_Time); else return -1; }