動作確認済み
GMD.cpp
- Committer:
- inst
- Date:
- 2016-07-02
- Revision:
- 1:9d066dbe1893
- Parent:
- 0:010c6f6ac7c0
- Child:
- 2:858781a5bbd1
File content as of revision 1:9d066dbe1893:
#include <algorithm> #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); 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) { p = std::max(0.0f, std::min(p, 1.0f)); 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); }