www.pudn.com > Echo_Cancel.rar > ECHO_EZKIT_ISR.asm


/************************************************************************************************ 
* TITLE: 	Echo_EZKIT_ISR 
* PURPOSE:	Echo Cancellation ISR for the ADSP-2191 EZ-KIT	 
*  
* 
* Modified: 07/12/2001 - GJO 
* 
************************************************************************************************/ 
#include  
 
/************************************************************************************************/ 
/*			   EXTERNAL DECLARATIONS															*/	 
/************************************************************************************************/ 
.EXTERN Start; 
.EXTERN	Process_AD1885_Audio_Samples; 
.EXTERN RX_Status; 
.EXTERN move_disp; 
.EXTERN rx_buf; 
 
/************************************************************************************************/ 
/* 				PM Reset interrupt vector code 													*/ 
/************************************************************************************************/ 
.section/pm IVreset;  
  	jump Start; 
  	nop; nop; nop; 
 
/************************************************************************************************/ 
/* 				SPORT0 RX ISR																	*/ 
/************************************************************************************************/ 
.section/pm IVint4;   
	ENA SR;									/* Enable Secondary Registers */ 
	ay1 = IOPG; 
  	IOPG = SPORT0_Controller_Page; 
 
	ax0 = LENGTH(rx_buf);					/* Determine if Interrupt occured at the middle of */ 
	ay0 = IO(SP0DR_CNT);					/* the DMA Buffer or at the end of DMA Buffer */ 
	ar = ax0 - ay0; 
	if eq jump Roll_Over; 
	 
	ay0 = 0x8000; 
	ax0 = dm(RX_Status);					/* Get status bit 15 from RX_Status */ 
	ar =ax0 AND ay0; 
	if eq jump Process_AD1885_Audio_Samples; 
 
/* ...house keeping prior to RTI */ 
Roll_Over:	 
	ar=3;									/* Clear RX Interrupts */ 
  	io(SP0DR_IRQ)=ar; 
	 
	IOPG = ay1; 
	DIS SR;									/* Disable Secondary Registers */ 
	RTI; 									 
	 
/************************************************************************************************/ 
/* 				Push Button ISR	- Beta change													*/ 
/************************************************************************************************/ 
.section/pm IVint6;  
jump move_disp;