RL78マイコン タイマアレイ ワンショット動作

  • このエントリーをはてなブックマークに追加
  • LINEで送る

かふぇルネにも投稿しましたが、RL78のタイマアレイユニット(TAU)、ワンショット動作について私の誤解がありました。

一般的にタイマはタイマスタート(TS)をセットすると動作開始するのですが、RL78のタイマアレイユニットでは動作モードによってスタートフラグセット時の動きが異なります。RL78はタイマイネーブル(TE)との絡みがあるためです。

今回取り上げたワンショット動作(U0 CH2:master/CH3:slave SoftTriger)についてはCubeSuite+のコード生成は

以上のように出力します。これはマニュアルの

によるものです。
R_TAU0_Channel2_Start()内で直接タイマイネーブル(TE)を制御したいところですが、このレジスタはReadOnlyのため、そうもいかないようです。

実際にワンショット動作として稼働させるには

  1. R_TAU0_Channel2_Start()
  2. タイマイネーブル(TE)のセット

  3. R_TAU0_Channel2_Set_SoftwareTriggerOn()
  4. ワンショットタイマのスタート

の順番で呼び出す必要があります。
中身を見ると同じタイマスタート(TS)レジスタを操作しているわけですが、前述の通り、1回目のタイマスタート(TS)のセットはタイマイネーブル(TE)をセットしタイマを動作可能状態にするだけで実際にはタイマは動いていません。2回目以降のタイマスタート(TS)のセットでワンショット動作が始まります。尚、ワンショット動作はCH2をmasterに、CH3をslaveに設定しているため2回目以降にセットするのはCH2だけです。
rl78_tau_os

仮に2回目以降もR_TAU0_Channel2_Start()をcallしてCH2/CH3のタイマスタート(TS)をセットすると下記動作になってしまいます。
rl78_tau_os2

本来ならActtiveがCH2、in-ActiveがCH3であるのに対し、CH2/CH3が同時にスタートしているので必要な時間がとれなくなっています。

皆様もタイマアレイユニット(TAU)を利用する際はご注意ください。

SNSでもご購読できます。

スポンサー リンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください