マイクロマウス研修 Part10(岩本)


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
岩本ブログ一覧
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こんにちは岩本です。
今回は、Part9の解説に一部追記+後々のモータのPWMについて解説しときます。

 

まず、MTUの設定は、init.cで定義されています。

 

126~128行目は、プロテクト解除⇒MTUモジュールをON⇒プロテクト保護を行っています。
MTUの機能は、CMTと同様に省エネの為、初期状態では、電源供給されないようになっています。
また、130行目、タイマストップしているのは、TCRレジスタの設定を行う際、止める必要があるためです。

 

スピーカー用MTUの設定は下図のようになります。
133行目は、PWMのカウントをクリアするタイミングの設定です。
134行目は、カウントする周期の設定。
135行目は、PWMのモードに設定。(このマイコンはモードが複数あるためです。)
136~137行目は、コンペアマッチしたときの動作の設定。
138~139行目は、周波数の設定をしています。

 

この設定で生成される波形は、下図のようになります。

 

モーター用MTU設定は以下のようになります。取り敢えず、左右一緒なので右モータについてだけ説明します。
殆どスピーカの設定と同じですが、148行目にTGRCが追加されています。TGRCは、TGRAの値を途中で変更するためのバッファー用です。(ただし、値を変更するタイミングは、TGRAコンペアマッチ後となります。)
バッファーモードの設定は、150行目で行われています。
TGRAの値を直接変えることもできるのですが、不都合が生じる可能性があるためバッファーモードを使用します。
例えば、TGRAの値を12000から1000に変えた時、カウントが1000を通り過ぎていた場合、いつまでたってもコンペアマッチしない、と言う状況にならないようにバッファーモードを使用します。
なお、TGRCの値はPI:COのスピードを変えるために使用されます。
152~154行目は複数の割り込みが発生した場合、どのプログラムを優先的に処理するかの設定です。優先度は15が最大です。

 

この設定で生成される波形は、下図のようになります。
PWMのhighの時間がTGRCで変更できます。これによって速度を変更することが出来ます。

今回は以上です。


Posted in Pi:Co Classic3 製作記