CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ポーリングでLEDチカチカ

本当の割込み処理の確認はいつかやることとして、ここでは簡単にポーリングによるタイマ待ちでやってみました。

タイマ割込みは実際に割込み処理が行われなくてもリクエスト状態であることを示すステータスビットが立つようです

twait()関数はCICTL(COUNTER INTERRUPT CONTROL REGISTER :R23)のD6ビット:CIRH ビット(H-Counter Interrupt Request)をポーリングしセットされるまで内部ループして待ち時間をつくっています。実際に割込みが発生するとINTAシーケンスでこのフラグは自動クリアされるようですが、ここでは割込みは起きないので手動クリアして次回のセットに備えます。

f:id:O3I:20210814184231j:plain

 

このボードではクロック入力が8MHzのためカウントスタート値(HCSV/LCSV)に0x7a1200=8000000をセット、分周された1Hz周期でタイムアウトさせLEDをチカチカさせています

 

f:id:O3I:20210814184247j:plain