fiq.asm
来自「在凌阳科技教育推广中心的兴趣产品智能机器人的基础上」· 汇编 代码 · 共 71 行
ASM
71 行
.PUBLIC _FIQ
.DEFINE P_IOB_DATA 0x7005;
.DEFINE P_IOB_DIR 0x7007;
.DEFINE P_IOB_ATTRI 0x7008;
.DEFINE P_INT_CTRL 0x7010;
.DEFINE P_INT_CTRL_NEW 0x702D;
.DEFINE P_INT_CLEAR 0x7011;
//.DEFINE P_Watchdog_Clear 0x7012;
//...............................................
.EXTERNAL _BSR_FIQ_Routine
.EXTERNAL __gIsStopRecog //变量值 = 0 辨识器忙
// = 1 辨识器停止
.EXTERNAL _PlayFlag
.PUBLIC _BREAK,_IRQ0, _IRQ1, _IRQ2, _IRQ3, _IRQ4, _IRQ5, _IRQ6, _IRQ7
.ram
.var _IRQFlag=0
//..................................................
.INCLUDE s480.inc;
.INCLUDE A2000.inc;
.INCLUDE resource.inc
.INCLUDE hardware.inc
//.DEFINE P_INT_CTRL 0x7010;
//.DEFINE P_INT_CLEAR 0x7011;
.code
.TEXT
_FIQ:
push R1,R4 to [SP]
R1 = [P_INT_Ctrl]
R1 &= 0x2000
jz ?notTimerA //当不为TIQ_TMA,则转
R1 = [__gIsStopRecog]
jnz ?BSR_NotBusy //[__gIsStopRecog]为1则转至放音处理
call _BSR_FIQ_Routine //为0,调用辨识子程序
jmp ?BSR_Busy //返回中断
?BSR_NotBusy: //放音处理
R2 = [_PlayFlag]
jnz ?Play2000 //[_PlayFlag]为1则是播放2000
call F_FIQ_Service_SACM_S480; //为0,播放480
jmp ?BSR_Busy //返回中断
?Play2000: //2000播放子程序
call F_FIQ_Service_SACM_A2000;
?BSR_Busy: //返回中断
R1 = 0x2000
[P_INT_Clear] = R1
pop R1,R4 from [SP];
reti;
?notTimerA:
R1 = 0x8800;
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
_BREAK:
_IRQ0:
_IRQ1:
_IRQ2:
_IRQ3:
_IRQ4:
_IRQ5:
_IRQ6:
_IRQ7:
.END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?