📄 isr.asm
字号:
//========================================================
// 文件名称: isr.asm
// 功能描述: 中断程序
// 维护记录: 2005-10-14 v1.0
//========================================================
.INCLUDE SPCE061A.inc
.EXTERNAL F_Key_Scan;
.TEXT
.PUBLIC _BREAK;
.PUBLIC _FIQ;
.PUBLIC _IRQ0;
.PUBLIC _IRQ1;
.PUBLIC _IRQ2;
.PUBLIC _IRQ3;
.PUBLIC _IRQ4;
.PUBLIC _IRQ5;
.PUBLIC _IRQ6;
.PUBLIC _IRQ7;
//============================================================================================
//汇编格式: _FIQ,_IRQ0,_IRQ1,_IRQ2,_IRQ3,_IRQ4,_IRQ5,_IRQ6,_IRQ7
//实现功能: 中断服务子程序
//参数: 无
//返回值: 无
//破坏寄存器: 无
//=============================================================================================
_FIQ:
PUSH r1,r5 TO [sp];
r1 = C_FIQ_PWM;
TEST r1,[P_INT_Ctrl];
JNE L_FIQ_PWM;
r1 = C_FIQ_TMA;
TEST r1,[P_INT_Ctrl];
JNE L_FIQ_TimerA;
L_FIQ_TimerB:
POP r1,r5 FROM[sp];
RETI;
L_FIQ_PWM:
[P_INT_Clear] = r1;
POP r1,r5 FROM[sp];
RETI;
L_FIQ_TimerA:
[P_INT_Clear] = r1;
POP r1,r5 FROM[sp];
RETI;
_BREAK:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
_IRQ0:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
_IRQ1:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
_IRQ2:
PUSH r1,r5 TO [sp];
[P_INT_Clear] = r1;
POP r1,r5 FROM[sp];
RETI;
_IRQ3:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
_IRQ4:
PUSH r1,r1 TO [sp];
[P_INT_Clear] = r1;
POP r1,r1 FROM[sp];
RETI;
_IRQ5:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
_IRQ6:
PUSH r1,r4 to [sp];
r1=0x0001;
TEST r1,[P_INT_Ctrl];
JNZ _IRQ6_TMB2;
r1=0x0002;
[P_INT_Clear]=r1;
POP r1,r4 FROM [sp];
RETI;
_IRQ6_TMB2:
[P_INT_Clear]=r1;
CALL F_Key_Scan; //扫描键盘
POP r1,r4 FROM [sp];
RETI;
_IRQ7:
PUSH r1,r4 TO [sp];
POP r1,r4 FROM[sp];
RETI;
//========================================================================================
// isr.asm结束
//========================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -