📄 isr.asm
字号:
//========================================================
// 文件名称: isr.asm
// 功能描述: 将解码队列的语音资源送到DAC进行播放
// 维护记录: 2005-09-12 v1.0
//========================================================
.INCLUDE a2000.inc
.INCLUDE s480.inc
.INCLUDE hardware.inc
.INCLUDE Key.inc
.TEXT
//========================================================
// 汇编格式: _FIQ
// 实现功能: 获取键值
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:无
//========================================================
.PUBLIC _FIQ
_FIQ:
push r1,r5 to [sp]
r1 = C_FIQ_TMA
test r1,[P_INT_Ctrl] //判断是否是FIQ_TMA中断
jnz L_FIQ_TimerA //是则转向L_FIQ_TimerA
r1 = C_FIQ_TMB
test r1,[P_INT_Ctrl] //清FIQ_TMB中断标志
jnz L_FIQ_TimerB
L_FIQ_PWM:
r1 = C_FIQ_PWM
[P_INT_Clear] = r1 //清FIQ_PWM中断标志
pop r1,r5 from [sp]
reti
L_FIQ_TimerA:
[P_INT_Clear] = r1 //清FIQ_TMA中断标志
call F_FIQ_Service_SACM_A2000 //调用F_FIQ_Service_SACM_A2000函数解码播放
call F_FIQ_Service_SACM_S480 //调用F_FIQ_Service_SACM_S480函数解码播放
pop r1,r5 from [sp]
reti
L_FIQ_TimerB:
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
//========================================================
// 汇编格式: _IRQ6
// 实现功能: 扫描键盘
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:无
//========================================================
.PUBLIC _IRQ6
_IRQ6:
push r1,r5 to [sp]
r1 = C_IRQ6_TMB1
test r1,[P_INT_Ctrl] //判断是不是128Hz中断
jnz ?L_IRQ6_TMB1 //不是,转向L_IRQ6_TMB1
?L_IRQ6_TMB2:
call F_Key_Scan //调用F_Key_Scan函数扫描键盘,F_Key_Scan函数在key.asm中定义
r1 = C_IRQ6_TMB2
[P_INT_Clear] = r1 //清128Hz中断标志
pop r1,r5 from [sp]
reti
?L_IRQ6_TMB1:
r1 = C_IRQ6_TMB1 //清IRQ6_TMB1中断标志
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -