📄 isr.asm
字号:
//============================================================
// 文件名称:ISR.asm
// 实现功能: 语音播放/识别中断服务,红外中断服务。
// 维护记录: 2008年2月3日 修改:林浩岳
//============================================================
.include hardware.inc
.external _BSR_FIQ_Routine
.external F_FIQ_Service_SACM_S480
.EXTERNAL _iCouter //外部变量用来存储电平的持续时间
.text
//==============================================================================
//汇编语言格式:_FIQ
//功能描述:_FIQ语音播放/识别的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.public _FIQ;
_FIQ:
push R1,R5 to [sp]; // 寄存器压栈保护
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
call _BSR_FIQ_Routine //语音识别中断服务
call F_FIQ_Service_SACM_S480; //语音播放中断服务
pop R1,R5 from [sp];
reti;
//==============================================================================
//汇编语言格式:_IRQ4
//功能描述:IRQ4的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ4
_IRQ4:
push r1,r5 to[sp] //寄存器入栈
r1 = 0x0040
test r1,[P_INT_Ctrl] //判断是否为IRQ4_4KHz中断
jnz ?IRQ4_4KHz //是,转向?IRQ4_4KHz
?IRQ4_4KHz: //IRQ4的4KHz中断
[P_INT_Clear] = r1 //清IRQ4_4KHz中断标志
r1 = [_iCouter] //读取计数器中的数值
r1 += 1 //不等则继续累加
[_iCouter] = r1
jmp ?exit
?exit:
pop r1,r5 from[sp] //寄存器出栈
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -