📄 isr.asm
字号:
//======================================================
// 文件名称: ISR.asm
// 功能描述: 中断服务程序
// 维护记录: 2006-08-30 v1.0
//======================================================
.INCLUDE SPCE061A.inc
.INCLUDE A2000.inc
.INCLUDE Key.inc
.PUBLIC _IRQ1, _IRQ6, _IRQ4, _IRQ3
.EXTERNAL _LED_ISR
.EXTERNAL _Clock_ISR
.EXTERNAL _Ext1_IRQ
.TEXT
//======================================================
// 函数名称: _FIQ
// 实现功能: FIQ中断服务程序,用于语音播放
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_IRQ1:
push r1, r5 to [sp]
r1 = C_IRQ1_TMA
[P_INT_Clear] = r1
call F_FIQ_Service_SACM_A2000
pop r1, r5 from [sp]
reti
//======================================================
// 函数名称: _IRQ3
// 实现功能: IRQ3_EXT1中断服务程序,用于测试液滴;IRQ3_EXT2中断服务程序,用于测试液面;
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_IRQ3:
push r1, r5 to [sp]
r1 = C_IRQ3_EXT1
// TEST R1,[P_INT_Ctrl]
// JZ IRQ3_EXT2
//IRQ3_EXT1:
[P_INT_Clear] = r1
call _Ext1_IRQ
pop r1, r5 from [sp]
reti
//IRQ3_EXT2:
// r1 = C_IRQ3_EXT2
// [P_INT_Clear] = r1
// call _LED_ISR
// pop r1, r5 from [sp]
// reti
//======================================================
// 函数名称: _IRQ4
// 实现功能: IRQ4_1KHz中断服务程序,用于计时
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_IRQ4:
push r1, r5 to [sp]
r1 = C_IRQ4_1KHz
[P_INT_Clear] = r1
call _Clock_ISR
pop r1, r5 from [sp]
reti
//======================================================
// 函数名称: _IRQ6
// 实现功能: IRQ6_TMB1中断服务程序,用于按键扫描, IRQ6_TMB2中断服务程序,用于数码管显示;
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器: 无
//======================================================
_IRQ6:
push r1, r5 to [sp]
r1 = C_IRQ6_TMB1
TEST R1,[P_INT_Ctrl]
JZ IRQ_TMB2
IRQ_TMB1:
[P_INT_Clear] = r1
call F_Key_Scan
pop r1, r5 from [sp]
reti
IRQ_TMB2:
r1 = C_IRQ6_TMB2
[P_INT_Clear] = r1
call _LED_ISR
pop r1, r5 from [sp]
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -