« 名古屋鉄道事情 | トップページ | 仕事してくれる人募集 »

2019年4月 6日 (土)

タイマー実装

往年のタイマーペリフェラル8254を使い、2chのPWM波形を生成。

3個のタイマー、1つをインターバル動作として周期を生成、
残り2つは、ハードトリガ付きワンショット動作。
これで、所望の動作を実現できた?

このチップを入手したころは、これでPWM波形が出せるなんて
考えもしなかった。
そもそも、DCマウスを作るなんてことも意識になかったしな。

今どきの、バッファレジスタ付きのタイマーではないので、
何も考えずにレジスタを更新すると、すっ飛んだパルスが
出たりする。

昔のH8-300Hあたりでも見られた現象。

新旧のデータのはざまにカウンタの値があると、
一発だけデューティ100%のパルスが出たりする。

簡易的回避策として、更新前にタイマーの現在値を参照して
危ないタイミングでは、あえて8254のレジスタを更新せず、
スキップするようにする。

完全に回避するには、もうちょっと考えないといけないけど
実用レベルなら、これでいいかな?

------

ともあれ、これで、マウスに必要な要素はそろった気がする。

あとは、SPIをパラレルバス直結で読み取るテストを
した方がいいけど、こっちは完全にタイミングを
コントロールできるので、わざわざ試すまでもないかな。

|

« 名古屋鉄道事情 | トップページ | 仕事してくれる人募集 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 名古屋鉄道事情 | トップページ | 仕事してくれる人募集 »