SilentCが使っていないモジュールを探せ(5) [ColdFire V2]
モジュール探訪の旅。 今日は、DMA Timer (DTIM) を走ります。
最初は、レジスタ・ダンプ
DTIMは、一般のタイマとしても使用することが出来るのですが、名前に「DMA」と入っている通り、「DMA」と密接につながってもいます。 まずは、レジスタ領域のダンプ・リストをとります。
40000400 00 00 00 00 ff ff ff ff ........ 40000408 00 00 00 00 00 00 00 00 ........ 40000440 00 00 00 00 ff ff ff ff ........ 40000448 00 00 00 00 00 00 00 00 ........ 40000480 00 00 00 00 ff ff ff ff ........ 40000488 00 00 00 00 00 00 00 00 ........ 400004c0 00 00 00 00 ff ff ff ff ........ 400004c8 00 00 00 00 00 00 00 00 ........
このようにいずれもデフォルトのままで、使われた形跡がありません。 まるごと、使えそうですね。
しつこいけれど、LEDピカピカ
これもタイマに違いは無いので、LEDピカピカに使ってみます。 このタイマのすごいところは、8-bit高級プリスケーラに32-bitタイマ・カウンタを装備しているため、超長時間(81時間以上)のタイマに使えるというところです。 32-bitだと使いにくい用途もあるのか、16-bitモードの設定も装備されています。 これだけの機能があれば、苦も無く正確に250m秒の時間が作り出せます。
フィールド | 値 | 備考 |
---|---|---|
PS | 0xF9 (250-1) | プリスケーラの分周比を250に設定します。 |
CE | 00 (disable) | DTINn端子でのエッジの捕まえ方を指定します。 ここでは、入力キャプチャの機能は使いません。 |
OM | 1 (toggle) | DTOUTnの出力の仕方を指定します。 パルス状に出されてもLEDで確認できないので、トグルさせることにします。 |
ORRI | 0 (disable) | 今は、割り込みもDMAも使いません。 |
FRR | 1 (enable) | このフィールドをセットすると、カウンタがリファレンスに一致したらゼロにリセットされます。 この機能を使うと、「リファレンスの値」+1の周期でイベントが発生します。 |
CLK | 01 (BUSCLKx1) | プリスケーラをバスクロックで駆動します。 |
RST | 0 (reset) → 1 (run) | リセットした状態でタイマを設定し、最後にこのフィールドをセットしてタイマを起動します。 |
出力は、DTOUT0(PTC[0])をトグルして出します。 トグルの周期は、
1 × 250 × 60000 ÷ 60MHz = 250msec
となります。 32-bitのカウンタは、必要ありませんでしたね。 さて、コーディングだ。
main() { char *ptcpar = 0x4010006f; int *dtmr0 = 0x40000400; long *dtrr0 = 0x40000404; long *dtcn0 = 0x4000040c; *ptcpar = 0x02; // PTCPAR0=10 *dtmr0 = 0x0000; // software reset *dtmr0 = 0xF92A; // See table *dtrr0 = 59999; // period 60000 *dtmr0 |= 0x0001; // RST=1 #stop 0 for(;;){ if (Getc(0)=='q')break; PrNum(*dtcn0);PrStr(" ");Sleep(10); } }
レジスタの設定が終われば、他にすることも無いのですが、タイマカウンタの値を表示しています。 このプログラムの場合も、'q'キーで実行を終了してもLEDはピカピカを続けます。
7行目にDTMR0レジスタに"0x0000"を書き込んでいます。 これは、DTMR0[RST]ビットをクリアすることが他の設定ビットを変更するための条件になっているため、確実にDTMR0[RST]をクリアするための仕掛けです。 この行を入れないと、二度目のプログラムの実行でタイマの設定ができませんでした。 この動きは、ちょっと、バグっぽい気もします。
参考文献
Interface (インターフェース) 2008年 09月号 [雑誌]
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2008/07/25
- メディア: 雑誌
コメント 0