圧電ブザーをwaitなしで好きなように鳴らすライブラリ
Dependents: Tourobo2022_TBCMotorDriver
buzzer.cpp@0:97f383c12e42, 2019-10-03 (annotated)
- Committer:
- YutaTogashi
- Date:
- Thu Oct 03 09:34:57 2019 +0000
- Revision:
- 0:97f383c12e42
- Child:
- 1:96bd2135c3bf
20191003
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YutaTogashi | 0:97f383c12e42 | 1 | #include "buzzer.h" |
YutaTogashi | 0:97f383c12e42 | 2 | |
YutaTogashi | 0:97f383c12e42 | 3 | buzzer::buzzer(PinName buzzerPin) : _buzzer(buzzerPin) { |
YutaTogashi | 0:97f383c12e42 | 4 | _buzzer = 0; |
YutaTogashi | 0:97f383c12e42 | 5 | _counter = 0; |
YutaTogashi | 0:97f383c12e42 | 6 | _setCount = 0; |
YutaTogashi | 0:97f383c12e42 | 7 | _timerFlag = 0; |
YutaTogashi | 0:97f383c12e42 | 8 | } |
YutaTogashi | 0:97f383c12e42 | 9 | |
YutaTogashi | 0:97f383c12e42 | 10 | void buzzer::output(unsigned int count,float period) { |
YutaTogashi | 0:97f383c12e42 | 11 | if(!(_timerFlag)) { |
YutaTogashi | 0:97f383c12e42 | 12 | _timer.attach(this,&buzzer::timerFunction,period); |
YutaTogashi | 0:97f383c12e42 | 13 | _timerFlag = true; |
YutaTogashi | 0:97f383c12e42 | 14 | _setCount = count; |
YutaTogashi | 0:97f383c12e42 | 15 | } |
YutaTogashi | 0:97f383c12e42 | 16 | } |
YutaTogashi | 0:97f383c12e42 | 17 | |
YutaTogashi | 0:97f383c12e42 | 18 | void buzzer::output(bool buzzerStates) { |
YutaTogashi | 0:97f383c12e42 | 19 | _timer.detach(); |
YutaTogashi | 0:97f383c12e42 | 20 | _timerFlag = false; |
YutaTogashi | 0:97f383c12e42 | 21 | _buzzer = buzzerStates; |
YutaTogashi | 0:97f383c12e42 | 22 | } |
YutaTogashi | 0:97f383c12e42 | 23 | |
YutaTogashi | 0:97f383c12e42 | 24 | void buzzer::stop() { |
YutaTogashi | 0:97f383c12e42 | 25 | _timer.detach(); |
YutaTogashi | 0:97f383c12e42 | 26 | _timerFlag = false; |
YutaTogashi | 0:97f383c12e42 | 27 | _buzzer = 0; |
YutaTogashi | 0:97f383c12e42 | 28 | } |
YutaTogashi | 0:97f383c12e42 | 29 | |
YutaTogashi | 0:97f383c12e42 | 30 | void buzzer::timerFunction() { |
YutaTogashi | 0:97f383c12e42 | 31 | if(_counter < _setCount * 2) { |
YutaTogashi | 0:97f383c12e42 | 32 | _buzzer =! _buzzer; |
YutaTogashi | 0:97f383c12e42 | 33 | _counter++; |
YutaTogashi | 0:97f383c12e42 | 34 | } else { |
YutaTogashi | 0:97f383c12e42 | 35 | _buzzer = 0; |
YutaTogashi | 0:97f383c12e42 | 36 | _timer.detach(); |
YutaTogashi | 0:97f383c12e42 | 37 | _timerFlag = false; |
YutaTogashi | 0:97f383c12e42 | 38 | } |
YutaTogashi | 0:97f383c12e42 | 39 | } |