中级会员
- 积分
- 275
- 威望
- 128
- 贡献
- 55
- 兑换币
- 67
- 注册时间
- 2013-3-18
- 在线时间
- 46 小时
|
extern u32 rowCnt ; //行计数extern u8 ImageBuf[ROW][COL];u8 SampleFlag =0;void PORTA_IRQHandler(){ //---HREF行中断处理 if( PORTA_ISFR & (1 << 9)) //PTA9触发中断 { PORTA_ISFR |= (1 << 9); //写1清中断标志位 if ( SampleFlag == 0 ) //不足一场时返回 { return; } //-------------DAM初始化通道4,数据源为PTD,每次存在数组ImageBuf[]指针中,PCLK接PT19触发,每次传输1个字节,每次触发传输320次,上升沿触发 DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTD_BYTE0_IN, ImageBuf[rowCnt], PTC19, DMA_BYTE1, 320, DMA_rising); //----使能DMA,初始化的时候禁止DMA DMA_EN(DMA_CH4); rowCnt++; if(rowCnt == 240) { rowCnt = 0; DMA_DIS(DMA_CH4); } } //---VSYN场中断处理 if(PORTA_ISFR & (1 << 27)) //PTA27触发中断 场中断 { PORTA_ISFR |= (1 << 27); //写1清中断标志位 rowCnt = 0; SampleFlag = 1; }}DMA驱动应该没问题,主程序初始话之后 while(1) { for(i=0; i<ROW; i++) { for(j=0;j<COL ;j++) { if(ImageBuf[i][j] == 0xFF) ImageBuf[i][j]--; if(ImageBuf[i][j]<110) uart_putchar(UART1,'1'); else uart_putchar(UART1,'0'); } } 为啥串口显示的都是1,求指教
|
|