📄 isr.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 + -