我在使用BF532时,用PPI采集一个AD芯片的数据(不是视频采集的AD),然后设置PPI为输入,ITU R656模式,0 syncs,internal trigger,发现PPI一直工作不了,接收不到数据,请大牛帮我看看怎么回事,以下是我的源码:
void Init_DMA(void)
{
int DMA_addr;
*pDMA0_START_ADDR = &Frame_Addr[0];
*pDMA0_X_COUNT = 500;
*pDMA0_X_MODIFY = 1;
*pDMA0_Y_COUNT = 1;
*pDMA0_Y_MODIFY = 1;
*pDMA0_CONFIG = WNR | WDSIZE_8| DMA2D | DI_EN; //0x00B2;
*pDMA0_PERIPHERAL_MAP = 0x0;
}
void Init_PPI(void)
{
*pPPI_CONTROL = 0x0074;//It is OK with 0x00x8, 0x00x4, 0x00x0;
*pPPI_DELAY = 0;
*pPPI_COUNT = 499;
*pPPI_FRAME = 1;
}
void InitTimer(void)
{
*pTIMER1_PERIOD = 640;
*pTIMER1_WIDTH = 370;
*pTIMER1_CONFIG = 0x0019;
*pTIMER1_CONFIG |= 0x0004;
*pTIMER2_PERIOD = 1280;
*pTIMER2_WIDTH = 640;
*pTIMER2_CONFIG = 0x0009;
*pTIMER0_CONFIG = 0x0019;
*pTIMER0_PERIOD = 0x280;
*pTIMER0_WIDTH = 0x160;
*pTIMER_ENABLE = 0x0007;
}
void PPI_TMR_DMA_Enable(void)
{
*pDMA0_CONFIG |= 0x1;
asm("ssync;");
InitTimer();
*pPPI_CONTROL |= 0x1;
asm("ssync;");
*pTIMER_ENABLE |= 0x0006;
asm("ssync;");
}
int main( void )
{
/* Begin adding your custom code here */
int i;
int j;
unsigned int addr;
unsigned short FlashValue;
Set_PLL(16, 4); //内核时钟:16MHz * 16 = 256MHz, 系统时钟:256MHz/4 = 64MHz
Init_EBIU();
Init_SDRAM();
SPI_init();
Init_Port();
Init_PPI();
Init_DMA();
PPI_TMR_DMA_Enable();
}