Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
Diff: duration.cpp
- Revision:
- 11:897ecd5413e0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/duration.cpp Thu Jun 21 17:57:22 2018 +0000 @@ -0,0 +1,39 @@ +#include "duration.h" + +Duration::Duration(PinName pin, const uint64_t& duration_us): + out_(pin, 0), + dur_(duration_us), + stat_(Rest) +{ + setDuration(duration_us); +} + +void Duration::setDuration(const uint64_t& value_us) +{ + dur_ = value_us; +} + +void Duration::start() +{ + stat_ = Active; + out_.write(1); + timer_.attach_us(callback(this, &Duration::stop), dur_); +} + +void Duration::stop() +{ + timer_.detach(); + out_.write(0); + stat_ = Rest; +} + +Duration::Status Duration::getStatus() +{ + return stat_; +} + +void Duration::wait() +{ + while(stat_ != Rest); +} + \ No newline at end of file