📄 isr.asm
字号:
//====================================================================================
//文件名:isr.asm
//功能描述:中断服务函数文件
//维护记录:2006年6月16 by hongyan.Feng
//====================================================================================
.INCLUDE SPCE061A.inc
.INCLUDE s480.inc
//.EXTERNAL _iData //外部变量用来存储IOA口读到的数据
//.EXTERNAL _RN_Rx
//.EXTERNAL _iCouter //外部变量用来存储电平的持续时间
.EXTERNAL _F_Counter //外部变量用来存储电平的持续时间
.EXTERNAL _Flag //外部变量用来存储电平的持续时间
.TEXT
//==============================================================================
//汇编语言格式:_BREAK
//功能描述:BREAK的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _BREAK
_BREAK:
reti
//==============================================================================
//汇编语言格式:_FIQ
//功能描述:FIQ的中断服务函数
// 调用F_FIQ_Service_SACM_S480函数进行语音解码和语音数据的输出
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _FIQ
_FIQ:
push r1,r5 to[sp]
r1 = 0x2000
test r1,[P_INT_Ctrl] //判断是否为FIQ_TMA中断
jnz ?FIQ_TMA //是则转向?FIQ_TMA
r1 = 0x0800
test r1,[P_INT_Ctrl] //判断是否为TMB中断
jnz ?FIQ_TMB //是则转向?FIQ_TMB
r1 = 0x8000
[P_INT_Clear] = r1 //清FIQ_PWM中断标志
jmp ?exit
?FIQ_TMA:
[P_INT_Clear] = r1 //清FIQ_TMA中断标志
call F_FIQ_Service_SACM_S480 //调用F_FIQ_Service_SACM_S480函数解码并输出到语音输出通道
jmp ?exit
?FIQ_TMB:
[P_INT_Clear] = r1 //清FIQ_TMB中断
?exit:
pop r1,r5 from[sp]
reti
//==============================================================================
//汇编语言格式:_IRQ0
//功能描述:IRQ0的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ0
_IRQ0:
reti
//==============================================================================
//汇编语言格式:_IRQ1
//功能描述:IRQ1的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ1
_IRQ1:
reti
//==============================================================================
//汇编语言格式:_IRQ2
//功能描述:IRQ2的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ2
_IRQ2:
push r1,r5 to[sp]
r1 = 0x0400
[P_INT_Clear] = r1 //清中断标志位
r1 = [P_TimerA_Data]
[_F_Counter] = r1 //保存TimerA的计数值
r1 = 1
[_Flag] = r1 //设置定时时间溢出标志
pop r1,r5 from[sp]
reti
//==============================================================================
//汇编语言格式:_IRQ3
//功能描述:IRQ3的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ3
_IRQ3:
reti
//==============================================================================
//汇编语言格式:_IRQ4
//功能描述:IRQ4的中断服务函数
// 这个中断服务程序进行发送和接受数据
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ4
_IRQ4:
reti
//==============================================================================
//汇编语言格式:_IRQ5
//功能描述:IRQ5的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ5
_IRQ5:
reti
//==============================================================================
//汇编语言格式:_IRQ6
//功能描述:IRQ6的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ6
_IRQ6:
reti
//==============================================================================
//汇编语言格式:_IRQ7
//功能描述:IRQ7的中断服务函数
// 如果需要,请在reti前面写用户的中断服务函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _IRQ7
_IRQ7:
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -