圧電ブザーをwaitなしで好きなように鳴らすライブラリ
Dependents: Tourobo2022_TBCMotorDriver
Diff: buzzer.cpp
- Revision:
- 1:96bd2135c3bf
- Parent:
- 0:97f383c12e42
diff -r 97f383c12e42 -r 96bd2135c3bf buzzer.cpp --- a/buzzer.cpp Thu Oct 03 09:34:57 2019 +0000 +++ b/buzzer.cpp Fri Oct 04 10:23:05 2019 +0000 @@ -5,6 +5,7 @@ _counter = 0; _setCount = 0; _timerFlag = 0; + _loopFlag = 0; } void buzzer::output(unsigned int count,float period) { @@ -21,19 +22,35 @@ _buzzer = buzzerStates; } +void buzzer::output(float period) { + if(!(_timerFlag)) { + _timer.attach(this,&buzzer::timerFunction,period); + _timerFlag = true; + //_setCount = count; + _loopFlag = true; + } +} + void buzzer::stop() { _timer.detach(); _timerFlag = false; _buzzer = 0; + _loopFlag = 0; + _counter = 0; } void buzzer::timerFunction() { - if(_counter < _setCount * 2) { + if(_loopFlag) { _buzzer =! _buzzer; - _counter++; } else { - _buzzer = 0; - _timer.detach(); - _timerFlag = false; - } + if(_counter < _setCount * 2) { + _buzzer =! _buzzer; + _counter++; + } else { + _buzzer = 0; + _counter = 0; + _timer.detach(); + _timerFlag = false; + } + } } \ No newline at end of file