📄 isr.asm
字号:
.text
.include hardware.inc // 包含SPCE061A硬件声明头文件
.include a2000.inc //包含用A2000函数的头文件
.public _FIQ //声明中断入口函数
_FIQ:
PUSH R1,R4 to [sp]; //寄存器入栈
R1 = 0x2000;
test R1,[P_INT_Ctrl]; //判断是否是定时器A中断
jnz L_FIQ_TimerA;
R1 = 0x0800;
test R1,[P_INT_Ctrl]; //判断是否是定时器B中断
jnz L_FIQ_TimerB;
L_FIQ_PWM:
R1 = C_FIQ_PWM; //进入PWM中断
[P_INT_Clear] = R1; //清除PWM中断标志
POP R1,R4 from[sp]; //出栈恢复
RETI;
L_FIQ_TimerA: //进入定时器A中断
[P_INT_Clear] = R1; //清除定时器A中断标志
call F_FIQ_Service_SACM_A2000; // 将语音送到DAC通道
pop R1,R4 from [sp]; //出栈恢复
RETI; //中断返回
L_FIQ_TimerB: //进入定时器B中断
[P_INT_Clear] = R1; //清除定时器B中断标志
pop R1,R4 from [sp]; //出栈恢复
RETI; //中断返回
//===================================================================================
//函数:F_ClearWatchdog()
//语法:void F_ClearWatchdog(void)
//描述:清看门狗
//参数:无
//返回:无
//===================================================================================
.code
.public _F_ClearWatchdog;
_F_ClearWatchdog: .proc
R1 = 0x0001;
[P_Watchdog_Clear] = R1;
RETF;
.ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -