📄 isr.asm
字号:
//============================================================
// 文件名称: ISR.asm
// 功能描述: 中断服务程序
// 维护记录: 2006-8-03 v1.0
// 维护说明: 创建
//============================================================
.include .\DVRSystem\spce.inc // by arthur
.external F_ISR_Service_SACM_DVR1600
.public _BREAK
.public _FIQ
.public _IRQ0
.public _IRQ1
.public _IRQ2
.public _IRQ3
.public _IRQ4
.public _IRQ5
.public _IRQ6
.public _IRQ7
.text
//=============================================================
// 语法格式: void FIQ(void)
// 实现功能: FIQ中断
// 参数: 无
// 返回值: 无
//=============================================================
_FIQ:
push R1,R5 to [SP];
R1 = C_FIQ_TMA; //
test R1,[P_INT_Ctrl]; //
jne L_FIQ_TimerA; // Timer A FIQ entrence
R1 = C_FIQ_TMB; //
test R1,[P_INT_Ctrl]; //
jne L_FIQ_TimerB; // Timer B FIQ entrence
L_FIQ_PWM: // PWM FIQ entrence
//------------------------------------------------------------------
// hook PWM FIQ subroutine here and define it to be external
//------------------------------------------------------------------
R1 = C_FIQ_PWM;
[P_INT_Clear] = R1;
pop R1,R5 from [SP];
reti;
L_FIQ_TimerA:
//------------------------------------------------------------------
// hook Timer A FIQ subroutine here and define it to be external
call F_ISR_Service_SACM_DVR1600;
// -------------------------------------------------------------
// User interrupt routine must be placed before this line.
// -------------------------------------------------------------
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
pop r1, r5 from [sp]
reti
L_FIQ_TimerB:
//------------------------------------------------------------------
// hook Timer B FIQ subroutine here and define it to be external
//------------------------------------------------------------------
R1 = C_FIQ_TMB;
[P_INT_Clear] = R1;
pop R1,R5 from [sp];
reti;
//=============================================================
// 语法格式: void BREAK(void)
// 实现功能: BREAK中断
// 参数: 无
// 返回值: 无
//=============================================================
_BREAK:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ0(void)
// 实现功能: IRQ0中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ0:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ1(void)
// 实现功能: IRQ1中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ1:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ2(void)
// 实现功能: IRQ2中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ2:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ3(void)
// 实现功能: IRQ3中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ3:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ4(void)
// 实现功能: IRQ4中断
// 参数: 无
// 返回值: 无
//=============================================================
.external _KeyScan_ServiceLoop
_IRQ4:
push r1,r4 to [sp];
r1 = C_IRQ4_1KHz
[P_INT_Clear] = r1
call _KeyScan_ServiceLoop
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ5(void)
// 实现功能: IRQ5中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ5:
push r1 to [sp];
r1 = C_IRQ5_2Hz
[P_INT_Clear] = r1
r1 = 0x0001
[P_Watchdog_Clear] = r1
pop r1 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ6(void)
// 实现功能: IRQ6中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ6:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//=============================================================
// 语法格式: void IRQ7(void)
// 实现功能: IRQ7中断
// 参数: 无
// 返回值: 无
//=============================================================
_IRQ7:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -