📄 fiq.asm
字号:
.public _FIQ
//...............................................
.external _BSR_FIQ_Routine
.external __gIsStopRecog //This variable = 0 if recognizer is busy,
// = 1 if recognizer is stopped,
// = 2 if recognizer is paused.
.public _BREAK,_IRQ0, _IRQ1, _IRQ2, _IRQ3, _IRQ4, _IRQ5, _IRQ6, _IRQ7
//..................................................
.include A2000.inc;
.include resource.inc;
.include hardware.inc;
.include eagle3.inc;
.external _VR_TimeDeldy;
.external _SleepCount;
.external _PlayFlag;
.TEXT
_FIQ:
push R1,R4 to [SP]
r1 = 0x2000
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerA
r1 = 0x0800
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerB
L_FIQ_PWM:
r1 = C_FIQ_PWM
[P_INT_Clear] = r1
pop R1,R4 from [SP];
reti;
L_FIQ_TimerA:
[P_INT_Clear] = r1
call F_FIQ_Service_SACM_A2000
pop R1,R4 from [SP];
reti;
L_FIQ_TimerB:
[P_INT_Clear] = r1
pop R1,R4 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,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ3:
push r1,r4 to [sp];
r1 = 0x0100;
test r1,[P_INT_Ctrl];
jnz L_IRQ3_Ext1;
r1 = 0x0200;
test r1,[P_INT_Ctrl];
jnz L_IRQ3_Ext2;
L_IRQ3_KeyChange_WakeUp:
r1 = 0;
[_SleepCount] = r1;
r1 = 0x0080;
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
L_IRQ3_Ext2:
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
L_IRQ3_Ext1:
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
_IRQ4:
push r1,r4 to [sp];
r1 = C_IRQ4_1KHz;
[P_INT_Clear] = r1;
r1 = [R_DelayTime];
r1 += 0x01;
[R_DelayTime] = r1;
r1 = [R_WaitRDYTime];
r1 += 1;
[R_WaitRDYTime] = r1;
r1 = [_VR_TimeDeldy];
r1 += 1;
[_VR_TimeDeldy]= r1;
pop r1,r4 from [sp];
reti;
_IRQ5:
push r1,r4 to [sp];
r1 = 1;
[P_Watchdog_Clear] = r1;
r1 = 0x0008;
test r1,[P_INT_Ctrl];
jnz L_IRQ5_4Hz;
r1 = [_SleepCount];
r1 += 1;
[_SleepCount] = r1;
r1 = 0x0004;
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
L_IRQ5_4Hz:
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
_IRQ6:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ7:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
//======================= 中断处理程序结束 =====================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -