📄 isr.asm
字号:
//========================================================
// 文件名称: isr.asm
// 功能描述: 将解码队列的语音资源送到DAC进行播放
// 维护记录: 2005-09-12 v1.0
//========================================================
.INCLUDE a2000.inc
.INCLUDE hardware.inc
.TEXT
//==================================================================================
// 汇编格式: _FIQ
// C格式: 无
// 实现功能: 语音播放的FIQ中断服务程序
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:无
//===================================================================================
.PUBLIC _FIQ
_FIQ:
push r1,r5 to [sp]
r1 = C_FIQ_TMA //判断是否是定时器A的FIQ中断?
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerA
r1 = C_FIQ_TMB //判断是否是定时器B的FIQ中断?
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerB
L_FIQ_PWM: //Fosc/1024中断
r1 = C_FIQ_PWM
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_FIQ_TimerA: //TimerA的FIQ中断
[P_INT_Clear] = r1 //清中断标志位
call F_FIQ_Service_SACM_A2000 //调用音频中断服务程序A2000的
pop r1,r5 from [sp]
reti
L_FIQ_TimerB:
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
.CODE
//==================================================================================
// 汇编格式: _Save_INTSetting
// C格式: void Save_INTSetting(void)
// 实现功能: 将当前系统设置的中断情况通知语音库程序,以避免语音播放时
// 影响用户中断程序
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:r1
//===================================================================================
.DEFINE P_INT_Ctrl_New 0x702D // Same as P_INT_Mask
.PUBLIC _Save_INTSetting
_Save_INTSetting:
r1 = [P_INT_Ctrl_New]
[R_InterruptStatus] = r1 //R_InterruptStatus定义在hardware.asm,hardware.inc中有声明
retf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -