今回、作成してみて一番はまったのが動作クロックですね。
内部クロックをF88ではプログラムで設定しないといけない。ということに気づかなかった。
プログラムの先頭に4MHzで動作させる場合は次のコマンドが必要です。
OSCCON = %01100100
当然、OPTIONレジスタの設定も必要です。
タイマー割り込み関係のみを抜き出してみました。
参考にしてください。
(空白に全角文字を使っているのでコピペには注意)
program F88WINKER
dim counter as word
’割り込み処理
sub procedure interrupt
'ここで割り込み処理を記述します。
inc(counter) ' Increment value of counter on every interrupt
TMR0 = 64
INTCON = $20 ' Set T0IE, claer T0IF
end sub
’初期処理
sub procedure init_rtn
OPTION_REG = $82 ' Assign prescaler to TMR0
counter = 0 ' Initialize counter
TMR0 = 64
INTCON = $A0 ' Enable TMRO interrupt
end sub
main:
OSCCON = %01100100 ' 内部クロックを4MHzに設定
init_rtn ’初期処理
while true
’メイン処理
if counter = 200 then ' if counter is 200, then
' ここで一定周期ごとの処理をする
counter = 0
end if
wend
end.
Give a man a fish, and you feed him for a day; show (teach) him how to catch fish, and you feed him for a lifetime.
返信削除