您好!
BF548开发板摄像头图像采集和显示部分程序的逻辑我看不明白,请指教。谢谢!
两个疑问:
1.图像采集,为什么3个缓冲区?我理解,两个缓冲区乒乓操作就可以了吧?
2.显示的时候,framenum计数干什么用?不能每次都显示吗?
图像采集的中断:
EX_INTERRUPT_HANDLER(EPPI2_RxIsr)
{
*pDMA14_IRQ_STATUS |= DMA_DONE;
*pDMA14_CONFIG &= ~0x1;
ssync();
cmosp->cmosflag= 0x1;
cmosp = cmosp->next;
if(cmosp->cmosflag&0x10)
{
cmosp = cmosp->next;
cmosp->cmosflag = 0x0;
*pDMA14_START_ADDR = cmosp->ptr;
}
else
{
cmosp->cmosflag = 0x0;
*pDMA14_START_ADDR = cmosp->ptr;
}
*pDMA14_CONFIG |= 0x1;
}
显示用的中断:
EX_INTERRUPT_HANDLER(DMA12_ISR)
{
*pDMA12_IRQ_STATUS |= DMA_DONE;//clear interrupt
index1 ++;
framenum = index1 ;
if(!frameflag) frameflag = 1;
if(index1 == 2)
{
framenum = index1 ;
index1 = 0;
}
if(!lcdpp)lcdp = lcdp->next;
*pDMA12_START_ADDR = lcdp->ptr;
*pDMA12_CONFIG |= 0x1;
}