📄 isr.asm
字号:
.INCLUDE SPCE061A.INC
.EXTERNAL _key_value_process;
.CODE
//============================================================================================
//函数: Clear_WatchDog()
//语法:void Clear_WatchDog(void)
//描述:清看门狗
//参数:无
//返回:无
//============================================================================================
.PUBLIC _Clear_WatchDog;
_Clear_WatchDog: .PROC
r1 = 0x01;
[P_Watchdog_Clear] = r1;
retf
.ENDP
//============================================================================================
.PUBLIC _SP_INT_IRQ3;
.PUBLIC F_SP_INT_IRQ3;
_SP_INT_IRQ3: .PROC
F_SP_INT_IRQ3:
r1 = [P_INT_Ctrl_New];
r1 = r1 |C_IRQ3_EXT1;
[P_INT_Ctrl_New]= r1
irq on;
RETF;
.ENDP
//=============================================================================================
.TEXT
.PUBLIC _IRQ3
_IRQ3:
push r1,r5 to [sp]
r1 = C_IRQ3_EXT1
test r1,[P_INT_Ctrl]
jnz ?L_IRQ3_Ext1 //测试为EXT1中断则转向?L_IRQ3_Ext1
r1 = C_IRQ3_EXT2
test r1,[P_INT_Ctrl]
jnz ?L_IRQ3_Ext2 //为EXT2中断则转向?L_IRQ3_Ext2
?L_IRQ3_Key:
r1 = C_IRQ3_KEY
[P_INT_Clear] = r1 //清中断标志位
pop r1,r5 from [sp]
reti
?L_IRQ3_Ext2:
r1 = C_IRQ3_EXT2
[P_INT_Clear] = r1 //清中断标志
pop r1,r5 from [sp]
reti
?L_IRQ3_Ext1:
call _key_value_process;
r1 = C_IRQ3_EXT1
[P_INT_Clear] = r1 //清中断标志
pop r1,r5 from [sp]
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -