int img_count = 0;
EX_INTERRUPT_HANDLER(DMA0_PPI_ISR)
{
*pDMA0_IRQ_STATUS = 0x1; //如果DMA中断后,清除DMA中断标志位
img_count++;
if(img_count<10)
{
Video_Frame_Capture();
}
else
{
img_count = 0;
*pPPI_CONTROL &= 0xfffe; //PPI 失能
*pSIC_IMASK = 0x00000000; //清除中断标志
Init(); //来自于文件 cap_image_yuv.c
//YUY2 TO RGB cap_image_yuv.c文件中
ConvertYUY2toRGB24(rgbdata_buffer,yuvdata_buffer, 640,480);
//大小转换 为了适应屏幕 函数在上面
size_convert(rgbdata_buffer,DisplayBuffer);
/*内存数据转换,将 DisplayBuffer 数组中的 RGB888 格式数据转为 RGB565 格式,存在 DisplayBuffer_565 中,数据转换大
小为 391680 字节,为了显示到液晶屏中*/
RGB888_RGB565(DisplayBuffer, 391680,DisplayBuffer_565);
///////////////////////////////////////////
*pPPI_CONTROL = 0;
*pDMA0_CONFIG = 0;//PPI DMA 失能
///////////////////////////////////////////
///////////////////////////////////////////
//下面是为了液晶屏的配置
InitDMA();
InitPPI();
InitTimer();
PPI_TMR_DMA_Enable();
LCD_Enable(); //CPLD液晶屏使能
Init_Timers0(1999); //1~1999 控制背光亮度
Enable_Timers0(); //定时器打开
LCDBK_Enable(); //CPLD中选通背光
///////////////////////////////////////////
*pSIC_IMASK = 0x00080000;//DMA中断使能,这样就可以等待下一次按键中断带来的DMA中断
}
}
-----------------------------------------------------------------------------------------------------------------------
这个函数中
if(img_count<10)
{
Video_Frame_Capture();
}
else........
为什么需要这个语句,有什么用呢?
我去掉了这个if语句之后,直接初始化 Video_Frame_Capture();点击屏幕的时候照片就不更新了。。
但是我把10改成2或者4,5,6,7什么的就马上可以了。好奇怪
「该帖子被 mx125211 在 2015-08-07 11:02:57 编辑过」