このタイミングはTimer1を使って計ります。システムクロックを256分周した周波数でカウントアップします。カウントアップの最大値が0.25秒で訪れるように比較一致レジスタOCR1Aを設定し、最大値に達したら自動ゼロクリアするようにCTC動作にします。
下図のタイミングチャートでは、データビットの送出タイミングに合わせてTimer1のカウント値がどのように変化するかを示しています。「絶対座標のデータ」または「相対座標のデータ」の下の部分を見て分かる通り、データビットを取り込むタイミング(INT1のハンドラ内)でTimer1をクリアしています(図の「エッジ割り込みでクリア」と書いてある部分)。0.25秒未満の短い間隔では決して最大値には達しません。

- // スケールのデータ送信間隔を測る
- ISR(TIMER1_COMPA_vect)
- {
- Rbufp = Rbuf; /* バッファポインタを先頭へ */
- }
0 件のコメント:
コメントを投稿