(2015.5.31 作成)
PWM(パルス幅変調: Pulse width modulation)を行うクラスです。PWM自体の詳しい説明は他サイトに譲るとして、高速にGPIOをOn/Offすることで
等の使い方をされます。ArduinoではanalogWriteで実現されています。
使用されるパラメータは以下の図の通りです。
STM32, Arduino両方のクラスをそれぞれ公開していますので、実際のコンストラクタ等はそれぞれのサブページを見てください。それぞれに制約があり、
周期を変更する (float版) |
||
プロトタイプ | void period(const float &seconds) | |
戻り値 |
なし |
|
引数 |
seconds |
周期 (秒単位) |
備考 |
Arduino版:使用不可です。 STM32版:パルス幅の設定精度をなるべく上げられるようにタイマのカウンタクロックを設定します。 |
周期を変更する (ms版) |
||
プロトタイプ | void period_ms(const uint16_t &ms) | |
戻り値 |
なし |
|
引数 |
ms |
周期 (ms単位) |
備考 |
Arduino版:使用不可です。 STM32版:タイマのカウンタクロックを0.5msに設定するので設定可能な最大周期は32767[ms]までです。 |
周期を変更する (us版) |
||
プロトタイプ | void period_us(const uint16_t &us) | |
戻り値 |
なし |
|
引数 |
us |
周期 (us単位) |
備考 |
Arduino版:使用不可です。 STM32版:タイマのカウンタクロックを1usに設定するので設定可能な最大周期は65535[us]までです。 |
パルス幅を変更する (float版, ms版, us版) |
||
プロトタイプ |
void pulsewidth(const float &seconds)
void pulsewidth_ms(const uint16_t &ms) void pulsewidth_us(const uint16_t &us) |
|
戻り値 |
なし |
|
引数 |
seconds |
パルス幅 (秒, ms, us単位) |
備考 |
Arduino版:使用不可です。 STM32版:実際に設定できる上限値と精度は周期設定時のカウンタクロックに依存します。 |
Duty比からパルス幅を決定する |
||
プロトタイプ |
void write(const float &value) operator = |
|
戻り値 |
なし |
|
引数 |
value |
パルス幅 (ms単位) 1.0でDuty比100%になります。 |
備考 |
|
Duty比を返す |
|
プロトタイプ |
float read(void)const
operator() |
戻り値 |
Duty比。100%で1.0を返します |
引数 |
なし |
備考 |
|