RXマイコンのタイマを使って可変周期で割り込みハンドラによる関数呼び出しがしたいです。
周期の半分あたりのタイミングでコンペアマッチして割り込みハンドラを起動して次の周期レジスタ(バッファ)とコンペアマッチレジスタ(バッファ)の変更して、次の周期を変えたいと考えています。設定レジスタのバッファリング対応しているタイマがどれかを調べていてMTU3aとGPTタイマの他にはありますか?タイマに連動した出力は特に必要ありません。GPTについてはステッピングモーターのパルス指令の吐き出しで使ったことがあります。
わわいです
どのタイマがバッファリングしているか、ってのはハードウエアマニュアルを見てもらえばいいかとおもいます
が、
タイマ割り込み>コンペアマッチ変更、のあいだにタイマがまだコンペアマッチしない、という状況なら、バッファリングは必ずしも必要でもないです
まあ、この条件が満たされないって場合は、バッファリングしてたところでまともに動きそうもないですが。
ハードウェアマニュアルは一通り読んでいますが、この二つ以外にも見落としてないかが判断できずの質問です。「まだコンペアマッチしない、という状況なら」・・・それが問題になる使い方なのでバッファリング対応したもので使えるものを当たっています。他のマイコン、インフィニオンのはCCU4とCCU8は対応しているのでバッファリング対応タイマが全8CHとかで利用できるけど、RXマイコンはどうなのかを調べています。データシートを読んだ私の理解ではTPUやCMT、CMTWは非対応。MTU3a以外のMTUも非対応。これの答え合わせをしたいのです。
改めて手元にあるRX630のマニュアル見てみましたが
MTU0,3,4でバッファ動作が可能、TPU0,3,6,9でバッファ動作を設定可能、とあります
これらのバッファ動作、というのがあなたの言うものに合致するのか、ってのはちとわかりませんが。
まあ、ここらへんの細かい動作に関しては、マニュアルの記述だけではワケワカランとはおもいますんで、実際に動作させて確認するのは必須かと思います。
動作ちゃうやんけー、、ってこともないこともないので。
MTUって複数チャンネルを組み合わせてMTU3a化してたり、3/4や6/7の組み合わせで3相モーター用相補PWM出力対応してたり、0/1の組み合わせで位相係数モードでAB相エンコーダのカウンタに使えたりで正直な感想としてポンコツな私には仕様の理解が難しいのです。MTU単体としてバッファリング対応しているならやりたいことに使えそうなチャンネ数は格段に増えそうです。MTU単体(チャンネル毎)追ってみます。ありがとうございました。