Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
Diff: pulse.cpp
- Revision:
- 15:20f7f737c256
- Parent:
- 13:8ea85a33e37a
- Child:
- 20:4c06d3041337
--- a/pulse.cpp Mon Jun 25 14:47:41 2018 +0000 +++ b/pulse.cpp Mon Jun 25 17:43:40 2018 +0000 @@ -2,17 +2,28 @@ Pulse::Pulse(PinName pin, const uint64_t& onset_us, const uint64_t& duration_us): out_(pin, 0), + enabled_(true), stat_(Rest) { setOnset(onset_us); setDuration(duration_us); } +void Pulse::setEnabled(const bool& value) +{ + enabled_ = value; +} + void Pulse::setOnset(const uint64_t& value_us) { onset_ = value_us; } +bool Pulse::isEnabled() +{ + return enabled_; +} + void Pulse::setDuration(const uint64_t& value_us) { dur_ = value_us; @@ -40,6 +51,8 @@ void Pulse::run() { + if (!enabled_) return; + if (onset_ < 10) { // do not wait for the onset timeout start(); @@ -51,6 +64,8 @@ void Pulse::start() { + if (!enabled_) return; + stat_ = Active; out_.write(1); timer_.attach_us(callback(this, &Pulse::stop), dur_); @@ -61,6 +76,8 @@ void Pulse::stop() { + if (!enabled_) return; + timer_.detach(); out_.write(0); stat_ = Rest;