動作確認済み
Diff: GMD.cpp
- Revision:
- 0:010c6f6ac7c0
- Child:
- 1:9d066dbe1893
diff -r 000000000000 -r 010c6f6ac7c0 GMD.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GMD.cpp Fri Jul 01 06:29:36 2016 +0000 @@ -0,0 +1,44 @@ +#include "GMD.hpp" + +const float GMD::_frequency_to_tick_coeff = 3300.0f; +const uint32_t GMD::_default_frequency_kHz = 50; +const float GMD::_duty_lower_limit = 0.0f; +const float GMD::_duty_upper_limit = 1.0f; + +GMD::GMD(PinName p0, PinName p1, PinName shut_down) : _shut_down(shut_down, 1) { + _pwm[0] = new FastPWM(p0); + _pwm[1] = new FastPWM(p1); + + // + //_pwm[0]->period_ticks(40); + //_pwm[1]->period_ticks(40); + // + + set_frequency_kHz(_default_frequency_kHz); +} + +void GMD::set_frequency_kHz(float f_kHz) { + _pwm[0]->period_ticks(_frequency_to_tick_coeff / f_kHz); + _pwm[1]->period_ticks(_frequency_to_tick_coeff / f_kHz); +} + +float GMD::set(float p) { + if (p < 0.0f) { + _pwm[0]->write(p); + _pwm[1]->write(0.0f); + } else { + _pwm[0]->write(0.0f); + _pwm[1]->write(p); + } + _shut_down = 1; + return p; +} + +void GMD::release() { + _shut_down = 0; +} + +float GMD::operator=(float p) { + return set(p); +} +