(V850/SA1、SB1、SB2、SV1に共通)
モータ制御のようなタイミングの制限が厳しい出力を制御するには、内蔵のタイマ機能、
DMA機能をリアルタイム出力機能と組み合わせて使用します。
- 4ビットのリアルタイム出力 (
RTP0〜
RTP3) を使用することを考えます。
この場合には、出力タイミングはタイマ4 (
INTTM4) を使用することになります。
また、同じタイミング (
INTTM4をDMA転送のトリガにも使用する) で次の出力データを
RTBLに DMA転送するので、DMAチャネルとしてはチャネル0 (またはチャネル1) を使用します。
前もって、出力パターンを内蔵RAM(その下位4ビット)に作成してあるとして以下の設定を行ってください。
(1) タイマ4 は、インターバル・タイマ機能により定周期で割り込み要求信号を発生します。
割り込み周期は
TCL4レジスタによりタイマのカウント・クロックを選択し、
コンペア・レジスタ
CR40の値+1 カウント分の時間として設定します。
ただし、未だタイマはスタートはしません。
(2) DMAの設定は、
| DIOA0(または1): | RTBLのアドレスの下位10ビットである3A0Hを設定 |
| DRA0(または1): | データを格納しているRAMアドレスの下位アドレス (有効ビット数は使用するCPUの内蔵RAM容量による)を設定 |
| DBC0(または1): | データ数 - 1を設定 |
| DCH0(または1): | 動作モードとして19Hを設定 |
(内蔵RAMアドレスはインクリメント、内蔵RAM → 周辺I/Oに、8ビット・データを転送)
(3) リアルタイム出力は、まず、
RTP0〜
RTP3 と兼用になっているポート (P100〜P103)
を設定します。
| P100〜103: | 初期値 |
| PM100〜103: | xxxx0000B(下位4ビットを出力に)を設定 |
その後に
| RTPM: | 0FH(下位4ビットをリアルタイム出力)を設定 |
| RTPC: | 80H(4ビット2チャネルモードで動作許可)を設定 |
| RTBL: | 次のデータを設定 |
(4) これで設定が完了しましたので、
TMC4に 80Hを設定 (
TM4と
CR40の一致でクリア&スタート、
タイマ出力は使用しない)してタイマ4 をスタートします。
これで、タイマ4 で指定した時間間隔毎に
RTP0〜3 に出力パターンが出てきます。
なお、初期値及び次のデータは既に設定してあるので、DMA転送するのはその次のデータからになります。
タイミングを以下に示します。
後は、
INTDMA0 (または1) の割り込み毎に DMAの再設定と再起動を行うことで、
連続した出力パターンを発生させることができます。