アセンブラのタイマー割り込み
ちょと長いですがプログラムおいときます
下のプログラムでは割り込みをスイッチで行うのですが
スイッチを使わない割り込みをするにはタイマーがいいのではと聞きましたが
私にはわからなかったので教えていただきたいです
どこをどう変えたら起動できるでしょうか?
使っているものはマイコン(R8C15)です
内容とか足らないのかもしれませんが何でも言ってください
すみませんがよろしくお願いします
.INCLUDE sfr_r815.inc
;プログラム部分
.SECTION PROGRAM, CODE
.ORG 0D000h
Start:
LDC #0500h, isp
LDINTB #VarVector
JSR SetClock20MHz
JSR InitPort
JSR InitKeyInputIntr
MOV.B Dummy, r0h
FSET i
Loop:
BCLR p1_1
JSR Wait2s
BSET p1_1
JSR Wait2s
JMP Loop
;外部クロックに切り替えるサブルーチン
SetClock20MHz:
BSET prc0
BSET cm13
BSET cm15
BCLR cm05
BCLR cm16
BCLR cm17
BCLR cm06
NOP
NOP
NOP
NOP
BCLR ocd2
BCLR prc0
RTS
;ポートの初期化を行なうサブルーチン
InitPort:
MOV.B #00000110b,drr
MOV.B #00000110b,p1
MOV.B #00000110b,pd1
RTS
;キー入力割り込みの初期化を行なうサブルーチン
InitKeyInputIntr:
BCLR ki0pl
BSET ki0en
MOV.B #01h, kupic
RTS
;2秒待ちサブルーチン
Wait2s:
MOV.W #200, r1
Wait2s_1:
JSR Wait10ms
SBJNZ.W #1, r1, Wait2s_1
RTS
;10m秒待ちサブルーチン
Wait10ms:
PUSH.W r0
MOV.W #28571,r0
Wait10ms_1:
SBJNZ.W #1,r0,Wait10ms_1
POP.W r0
RTS
;キー入力割り込み処理ルーチン
KeyInput:
Start1:
MOV.B #10001001b,pd1
MOV.B #00000000b,p1
MOV.B #10111000b,pd3
MOV.B #00000000b,p3
Syoki01:
MOV.W #2,r1
BSET p1_3 ;M
BCLR p3_3 ;SDI
Loop1:
MOV.W #2,a1
GYOU:
MOV.W #9,a0
CP00:
BSET p3_4 ;CP=H
BCLR p3_5
JSR wait1
BCLR p3_4 ;CP=L
JSR wait1
BSET p3_4 ;CP=H
BCLR p3_5
JSR wait1
BCLR p3_4 ;CP=L
JSR wait1
SBJNZ.W #1,r1,CP00
BNOT p3_3 ;SDI
MOV.W #2,r1
SBJNZ.W #1,a0,CP00
LOAD0:
BSET p3_4 ;CP=H
;BSET p3_5 ;LOAD
JSR wait1
BCLR p3_4 ;CP=L
BCLR p1_0 ;DIO
BSET p3_5 ;LOAD
JSR wait1
BNOT p3_3 ;SDI
SBJNZ.W #1,a1,GYOU
MandDIO:
BSET p1_0 ;DIO
BNOT p1_3 ;M
JMP Loop1
wait1:
MOV.W #30,r2
wait001:
SBJNZ.W #1,r2,wait001
RTS
REIT
;その他の割り込み処理ルーチン
NOTUSE:
REIT
;データ(作業領域)部分
.SECTION WORK,DATA
.ORG 0400h
Dummy:
.BLKB 1
;可変ベクタテーブル
.section VARIABLEVECTOR, ROMDATA
.org 0F000h
VarVector:
.lword NOTUSE
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword 0
.lword KeyInput
.lword NOTUSE
.lword NOTUSE
.lword NOTUSE
.lword NOTUSE
.lword NOTUSE
;リセットベクタ部分
.SECTION FIXVECTOR, ROMDATA
.ORG 0FFFCh
Reset:
.LWORD Start | 0FF000000h
.END
お礼
回答ありがとうございます。 指摘していただいた部分を明日もう一度見直してみたいと思います。