2018.10.17
前へ
次へ
ホームページトップへ戻る


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第100回]



●ストップウォッチプログラム(2)

前回からの続きです。
前回はT0CON、T1CONの説明の途中で終ってしまいました。
その続きです。


Bit2(EXT)を1にするとクロックソースは外部端子からの入力になります。
0にするとシステムクロックが選択されます。
Bit1(ALT)はタイマーのカウント動作の設定ですが、ちょっとややこしいです。
ALT=1のときは、1)タイマーはmaxcount compare Aの値までカウントアップし、値が一致するとそこでタイマーがリセットされて0になります。
2)それから再びカウントアップを開始し今度はmaxcount compare Bまでカウントアップします。
値が一致するとそこでタイマーがリセットされて0になります。
そのあとまた1)次に2)というように繰り返しカウント動作が行なわれます。
ALT=0のときは、1)のカウント動作が繰り返し行なわれます。
このときはmaxcount compare Bは使われません。
Bit0(CONT)もちょっとややこしいです。
CONT=1のときは普通にカウント動作が続けられます。
CONT=0でかつALT=0のときはmaxcount compare Aレジスタまでカウントアップしたあと、そこでタイマーがクリアされてホルトします。
ENビットはクリアされます。
CONT=0でかつALT=1のときは1)と2)の動作をしたあとホルトします。

下はTimer 2のモード/コントロールレジスタです。

有効なビットがTimer 0、Timer 1に比べてうんと少なくなっています。
EN、INH、INT、MCについてはTimer 0、Timer 1と同じです。
Timer 2はMaxcount compare Aレジスタしかありませんから、Bit0(CONT)の説明はシンプルです。
CONT=1の時は普通にカウント動作が続けられます。
CONT=0のときは上のALTのところで説明した1)の動作が行なわれたあとホルトし、ENビットがクリアされます。

そしてこちらがTimer本体です。


このあとTimer 0を使ったストップウォッチプログラムの説明に入るのですが、本日も時間がありません。
それは次回ということにいたします。

毎回細切れで申し訳ありません。
目下のところAM188版の説明書の作成作業に注力しています。
説明を書きながらその機能のテストを並行して行なっていますと、バグがみつかったりします。
するとそこで一旦説明書の作業を中断してプログラムの修正にかかることになります。
プログラムの修正後に動作テストをして、それからまた説明書の作業を再開します。
なかなか思うに任せませんが、なんとかこの週末あたりまでにめどをつけたいと思っております。
AM188版のROMと説明書について、お待たせして申し訳ありません。
いましばらくお待ちいただきますようお願いいたします。

16ビットマイコンボードの製作[第100回]
2018.10.17upload

前へ
次へ
ホームページトップへ戻る