⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.c

📁 开发环境ADSP6++,EBF_561开发板所有源代码
💻 C
字号:
#include "FPGA_Test.h"

EX_INTERRUPT_HANDLER(SPORT1_TX_ISR_For_FPGA_Init)
{
		static int TX_Number = 0;
		if(TX_Number < 1)
		{
			TX_Number = TX_Number + 1;
			*pFIO0_FLAG_C = 0xc800;
			ssync();
			*pDMA2_3_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_3_CONFIG	= *pDMA2_3_CONFIG | 0x0001;
			ssync();
			
		}

		else if(TX_Number <2)
		{
			TX_Number = TX_Number + 1;
			
			*pFIO0_FLAG_S = 0xd800;
			ssync();
			*pSPORT1_TCR1 = *pSPORT1_TCR1 &0xfffe;
			ssync();
			*pDMA2_3_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_3_CONFIG	= *pDMA2_3_CONFIG & 0xfffe ;
			ssync();
			delay();
			*pDMA2_3_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_3_CONFIG	= *pDMA2_3_CONFIG | 0x0001;
			ssync();
			*pSPORT1_TCR1 = *pSPORT1_TCR1 | 0x0001;
			ssync();
		
			
		}
		
		else 
		{
			//disable TX
			*pSPORT1_TCR1 = *pSPORT1_TCR1 &0xfffe;
			ssync();
			*pDMA2_3_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_3_CONFIG	= *pDMA2_3_CONFIG & 0xfffe ;
			ssync();
			
			//enable PF13 interrupt
			*pSICB_IAR5 = 0x5fffffff;
			register_handler(ik_ivg12, PF_Interrupt_ISR);
			ssync();
			*pFIO0_MASKA_S = 0x2000;
			ssync();
			*pFIO0_INEN = 0x2000;
			ssync();
			*pSICB_IMASK1 = 0x00008000;
			ssync();
			*pSICB_IMASK0 = 0x00000000;	
			ssync();
			
			*pFIO0_FLAG_S = 0xd900;
			Dummy_TX_Done = 0;
			FPGA_Config_Done = 1;
		}
}


//-----------------------------------------------------------------------------------
//	PF15 output --- RX_Enable
//	PF14 output --- SPORTS_Eanble	
//  PF13 input  --- flagout
//  PF12 output --- dummy
//  PF11 output --- pulse_ena
//  PF8  output --- RX_Reset
//-----------------------------------------------------------------------------------

EX_INTERRUPT_HANDLER(PF_Interrupt_ISR)
{
	*pFIO0_FLAG_C = 0x2000;
	*pFIO0_MASKA_C = 0x2000;
	*pSICB_IMASK0 = 0x02000000;
	
	*pFIO0_FLAG_C = 0x4000;
	ssync();
	
	Dummy_RX_Done = 1;
	*pDMA2_2_X_COUNT = 100;
	ssync();
	*pDMA2_2_CONFIG	= *pDMA2_2_CONFIG | 0x0001;
	ssync();
	*pSPORT1_RCR1 = *pSPORT1_RCR1 | 0x0001;
	ssync();	
}

EX_INTERRUPT_HANDLER(SPORT1_RX_ISR_For_Recieve_Data)
{

		
		if(Dummy_RX_Done == 1)
		{
			*pFIO0_FLAG_S = 0x4000;
			ssync();
			*pDMA2_2_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_2_X_COUNT = 2600;
			ssync();
			*pDMA2_2_CONFIG	= *pDMA2_2_CONFIG | 0x0001;
			ssync();
			Dummy_RX_Done = 0;

		}
		else
		{
			*pDMA2_2_IRQ_STATUS  = 0x0001;
			ssync();
			*pDMA2_2_CONFIG	= *pDMA2_2_CONFIG & 0xfffe;
			ssync();
			*pSPORT1_RCR1 = *pSPORT1_RCR1 & 0xfffe;
			ssync();

			*pFIO0_MASKA_S = 0x2000;
			ssync();
			

		}

//	*pFIO0_FLAG_C = 0x4800;		
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -