?? dm642main.c
字號(hào):
/*----------------------------------------------------------*/
/*初始化Video Port*/
/*將Vedio Port設(shè)為采集輸入,以下初始化順序依次為u4通道,u2通道,u7通道,u9通道*/
portNumber = 1;
vpHchannel1 = bt656_8bit_ncfc(portNumber);//打開(kāi)一個(gè)VP口,進(jìn)行采集,
//并配置相應(yīng)DMA通道,函數(shù)體詳見(jiàn)vportcap.c中子函數(shù)
bt656_capture_start(vpHchannel1);
/*等待第一幀數(shù)據(jù)采集完成*/
while(capNewFrame == 0){}
/*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame =0;
VP_close(vpHchannel1);//采集完成,關(guān)閉VP口
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + i * (numPixels >> 1)),
numPixels>>1);
}
portNumber1 = 0;
asm( " nop " );
asm( " nop " );
vpHchannel0 = bt656_8bit_ncfc(portNumber1);
bt656_capture_start(vpHchannel0);
/*等待第一幀數(shù)據(jù)采集完成*/
while(capNewFrame1 == 0){}
/*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame1 =0;
VP_close(vpHchannel0);
//VP_FSETH(vpHchannel0, VCACTL, VCEN, 0x00);
//VP_FSETH(vpHchannel0, VCACTL, BLKCAP,0x01);
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer1 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer1 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer1 + i * (numPixels >> 1)),
numPixels>>1);
}
portNumber2 = 2;
WV=0;
vpHchannel2 = bt656_8bit_ncfc(portNumber2);
bt656_capture_start(vpHchannel2);
/*等待第一幀數(shù)據(jù)采集完成*/
while(capNewFrame2 == 0){}
/*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame2 =0;
VP_close(vpHchannel2);
//VP_FSETH(vpHchannel0, VCACTL, VCEN, 0x00);
//VP_FSETH(vpHchannel0, VCACTL, BLKCAP,0x01);
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer2 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer2 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer2 + i * (numPixels >> 1)),
numPixels>>1);
}
portNumber2 = 2;
WV=1;
vpHchannel2 = bt656_8bit_ncfcb(portNumber2);
bt656_capture_start(vpHchannel2);
/*等待第一幀數(shù)據(jù)采集完成*/
while(capNewFrame3 == 0){}
/*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame3 =0;
VP_close(vpHchannel2);
//VP_FSETH(vpHchannel0, VCACTL, VCEN, 0x00);
//VP_FSETH(vpHchannel0, VCACTL, BLKCAP,0x01);
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer3 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer3 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer3 + i * (numPixels >> 1)),
numPixels>>1);
}
/*啟動(dòng)顯示模塊*/
//bt656_display_start(vpHchannel0);
/*建立采集的循環(huán)*/
ED=1;
for(;;)
{
portNumber = 1;
vpHchannel1 = bt656_8bit_ncfc(portNumber);
bt656_capture_start(vpHchannel1);
while(capNewFrame == 0){}
if(capNewFrame == 1)
{
VP_close(vpHchannel1);
/*將數(shù)據(jù)裝入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame =0;
//disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + i * (numPixels >> 1)),
numPixels>>1);
}
}
portNumber1 = 0;
vpHchannel0 = bt656_8bit_ncfc(portNumber1);
bt656_capture_start(vpHchannel0);
while(capNewFrame1 == 0){}
if(capNewFrame1 == 1)
{
VP_close(vpHchannel0);
/*將數(shù)據(jù)裝入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame1 =0;
//disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer1 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer1 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer1 + i * (numPixels >> 1)),
numPixels>>1);
}
}
portNumber2 = 2;
WV=0;
vpHchannel2 = bt656_8bit_ncfc(portNumber2);
bt656_capture_start(vpHchannel2);
while(capNewFrame2 == 0){}
if(capNewFrame2 == 1)
{
VP_close(vpHchannel2);
/*將數(shù)據(jù)裝入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame2 =0;
//disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer2 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer2 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer2 + i * (numPixels >> 1)),
numPixels>>1);
}
}
portNumber2 = 2;
WV=1;
vpHchannel2 = bt656_8bit_ncfcb(portNumber2);
bt656_capture_start(vpHchannel2);
while(capNewFrame3 == 0){}
if(capNewFrame3 == 1)
{
VP_close(vpHchannel2);
/*將數(shù)據(jù)裝入顯示緩沖區(qū),并清采集完成的標(biāo)志*/
capNewFrame3 =0;
//disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*傳送Y緩沖區(qū)*/
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer3 + i * numPixels),
numPixels);
/*傳送Cb緩沖區(qū)*/
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer3 + i * (numPixels >> 1)),
numPixels>>1);
/*傳送Cr緩沖區(qū)*/
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer3 + i * (numPixels >> 1)),
numPixels>>1);
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -