M
M
MWX Library
検索…
Timer0 .. 4
タイマー, PWM (mwx::periph_timer)
タイマーでは、指定周期でのソフトウェア割り込みを発生させる目的、指定周期でPWM出力を行う2つの機能があります。TWELITE無線モジュールには0..4まで合計5つのタイマーが利用可能です。
組み込みオブジェクト名は Timer0..4 ですが、このページでは TimerXと記載します。

メソッド

setup()

1
void setup()
Copied!
タイマーを初期化します。この呼び出しにより必要なメモリ領域の確保を行います。

begin()

1
void begin(uint16_t u16Hz, bool b_sw_int = true, bool b_pwm_out = false)
Copied!
タイマーを開始します。1番目のパラメータは、タイマーの周期でHzで指定します。2番目のパラメータをtrueにするとソフトウェア割り込みが有効になります。3番目のパラメータをtrueにするとPWM出力を有効にします。
change_hz()で周波数を変更することが出来ます。change_hz()ではbegin()の指定より細かい指定が可能です。
change_duty()でPWM出力のデューティー比を変更できます。
割り込みハンドラの処理を記述するには、アプリケーションビヘイビアの定義が必要です。

end()

1
void end()
Copied!
タイマーの動作を停止します。

available()

1
inline bool available()
Copied!
タイマー割り込みが発生した直後のloop()trueになり、loop()が終了すればfalseになります。

change_duty()

1
void change_duty(uint16_t duty, uint16_t duty_max = 1024)
Copied!
デューティー比の設定を行う。1番目のパラメータにデューティ比を指定します(小さい値を指定すると波形の平均はGNDレベルに近づき、大きい値を指定するとVccレベルに近づく)。2番目のパラメータはデューティ比の最大値を指定します。
duty_max1024,4096,16384のいずれかの指定を推奨します。
内部でのカウント値の計算に除算が発生しますが、これら3つに限りビットシフトによる演算を行っていますが、これ以外の値では計算量の大きい除算処理が実行されます。

change_hz()

1
void change_hz(uint16_t hz, uint16_t mil = 0)
Copied!
タイマーの周波数を設定します。2番目のパラメータは周波数の小数点3桁分の値を整数で指定します。例えば 10.4 Hz としたい場合は hz=10, mil=400 と指定します。
最終更新 1yr ago