www.pudn.com > dds.zip > FIQ.ASM


//Program is FIQ.asm 
.PUBLIC _FIQ 
 
.EXTERNAL _BSR_FIQ_Routine 
.EXTERNAL __gIsStopRecog //变量值=0,语音识别器忙 
                         //变量值=1,语音识别器停止 
                         //变量值=2,语音识别器暂停 
.PUBLIC _BREAK,_IRQ0, _IRQ1, _IRQ2, _IRQ3, _IRQ4, _IRQ5, _IRQ6, _IRQ7 
 
.INCLUDE A2000.inc; 
.INCLUDE resource.inc 
.INCLUDE hardware.inc 
 
.TEXT 
_FIQ: 
	push R1,R4 to [SP] 
    R1 = 0x0001; 
    [P_Watchdog_Clear] = R1; //清看门狗 
	R1 = [P_INT_Ctrl] 
	R1 &= 0x2000 
	jz ?notTimerA           //当不为FIQ_TMA,则跳转 
	R1 = [__gIsStopRecog]    
	jnz ?BSR_NotBusy         //[__gIsStopRecog]为1,则转至放音处理 
	call _BSR_FIQ_Routine    //为0,调用语音识别子程序 
	jmp ?BSR_Busy            //返回中断 
?BSR_NotBusy:			//放音处理 
	call F_FIQ_Service_SACM_A2000;  //调用A2000播放子程序 
?BSR_Busy:			//返回中断 
	R1 = 0x2000             //清FIQ_TMA中断状态 
	[P_INT_Clear] = R1 
	pop	R1,R4 from [SP];    //寄存器组出栈 
	reti; 
?notTimerA: 
	R1 = 0x8800;	//清FIQ_TMA,FIQ_PWM中断状态 
    [P_INT_Clear] = R1; 
	pop	R1,R4 from [SP];    //寄存器组出栈 
	reti; 
_BREAK:  
_IRQ0: 
_IRQ1:  
_IRQ2:  
_IRQ3:  
_IRQ4:  
_IRQ5:  
_IRQ6:  
_IRQ7:	 
.END