📄 isr.asm
字号:
.INCLUDE SPCE061A.inc
.INCLUDE key.inc
.INCLUDE Dig.inc
.IRAM
.PUBLIC sum;
.VAR sum=0 // 进入中断的计数器
.TEXT
.PUBLIC _IRQ5;
.PUBLIC _IRQ6;
//.external sum;
.external _INTflag;
.external F_Key_Scan
//============================================================================================
//函数: FIQ(),IRQ0(),IRQ1(),IRQ2(),IRQ3(),IRQ4(),IRQ5(),IRQ6(),IRQ7()
//语法:void FIQ(void ),void IRQ0(void ),void IRQ1(void ),void IRQ2(void ),void IRQ3(void ),
// void IRQ4(void ),void IRQ5(void ),void IRQ6(void ),void IRQ7(void )
//描述:FIQ(),IRQ0(),IRQ1(),IRQ2(),IRQ3(),IRQ4(),IRQ5(),IRQ6(),IRQ7()中断服务子程序
//参数:无
//返回:无
//=============================================================================================
.PUBLIC _IRQ4
_IRQ4:
push r1,r5 to [sp]
r1 = C_IRQ4_1KHz
test r1,[P_INT_Ctrl]
jnz ?L_IRQ4_1KHz
r1 = C_IRQ4_2KHz
test r1,[P_INT_Ctrl]
jnz ?L_IRQ4_2KHz
?L_IRQ4_4KHz:
call F_DIG_Drive //数码管显示,F_DIG_Drive函数在Dig.asm中定义
r1 = C_IRQ4_4KHz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
?L_IRQ4_2KHz:
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
?L_IRQ4_1KHz:
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
//////////////////////////////
_IRQ5: //定时1秒的中断程序
push r1,r4 to [sp];
r1 =0x0008;
test r1,[P_INT_Ctrl];
jnz L_4Hz; // Timer A FIQ entrence
r1 = 0x0004;
[P_INT_Clear] = r1; //清中断
r1 = [sum] //取时基信号量
r1 += 1;
cmp r1,2;
je loop0;
[sum]=r1 //保存时基信号量
pop r1,r4 from [sp];
reti;
loop0:
r1 = 0x0001;
[_INTflag] = r1; //设置中断标识
r1 = 0
[sum] = r1
pop r1,r4 from [sp];
reti;
L_4Hz:
r1 = 0x0008;
[P_INT_Clear] = r1; //清中断
pop r1,r4 from [sp];
reti;
//////////////////////////////
_IRQ6:
push r1,r4 to [sp];
r1=0x0001;
test r1,[P_INT_Ctrl];
jnz _IRQ6_TMB2;
r1=0x0002;
[P_INT_Clear]=r1;
pop r1,r4 from [sp];
reti;
_IRQ6_TMB2:
[P_INT_Clear]=r1;
call F_Key_Scan; //扫描键盘
pop r1,r4 from [sp];
reti;
//========================================================================================
// isr.asm结束
//========================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -