06/12/10 17:23:47 2Ufm+2wH
>940
一番話が食い違ってるのはおそらく、タイマ割り込み以外の割り込みを
許可するか否かのようですね。
許可しないのであれば>940の内容はまったく正しいのですが、少しほかの
割り込みを許可する前提で話をしてよいでしょうか?
ほかの割り込みを許可する条件下でもプリスケーラを利用していなければ
タイマ0の再設定のときに
T0SET EQU H'10'
MOVF TMR0,W
ADDLW (T0SET+D'2')
MOVWF TMR0
のように再設定時のTMR0の値を反映させることによって割り込み発生周期を
一定にすることができます。もちろんほかの割り込みの処理等に起因する
割り込み禁止時間がタイマの周期よりも十分短いことを前提としていますが。
もしも、プリスケーラの値を読みだすことができたならば上記の方法と同様に
プリスケーラまでを含めた遅延分を反映させてタイマの値を再設定できますが、
残念ながらプログラムでプリスケーラに直接アクセスすることはできないので、
プリスケーラの分の誤差が出てしまいます。