📄 dm642main.c
字号:
(sa7121hPAL[i].regvule));
}
}*/
/*----------------------------------------------------------*/
/*初始化Video Port1*/
/*将Vedio Port2设为采集输入*/
ED=0;
portNumber = 0;
vpHchannel1 = bt656_8bit_ncfc(portNumber);
bt656_capture_start(vpHchannel1);
/*等待第一帧数据采集完成*/
while(capNewFrame == 0){}
/*将数据存入显示缓冲区,并清采集完成的标志*/
capNewFrame =0;
bt656_display_start(vpHchannel0);
/*建立显示的实时循环*/
ED=1;
ED1=1;
//VP_close(vpHchannel0);
//vpHchannel0 = bt656_8bit_ncfd(0);
//bt656_display_start(vpHchannel0);
error=0;
for(;;)
{
while(error/*(cjbz<400)&(cjbz>240)*/){}
if(!ED)
{ED=1;
//vpHchannel0 = bt656_8bit_ncfd(0);
//EVMDM642_waitusec(100);
VP_close(vpHchannel0);
//VP_close(vpHchannel1);
vpHchannel1 = bt656_8bit_ncfc(0);
bt656_capture_start(vpHchannel1);
vpHchannel0 = bt656_8bit_ncfd(2);
while(capNewFrame == 0){}
bt656_display_start(vpHchannel0);
}
/*******************************************************************************************/
/*if(capNewFrame%2 == 1)
{
for(i=0;i<20;i++)
{
for(j=0;j<40;j++)
{
*(int *)(dis1Ybuffer + (260+i)*720 + (20+j) + 0x32a00) = 0xffffffff;
*(int *)(dis1Ybuffer + (260+i)*720 + (20+j) ) = 0xffffffff;
}
}
}
else if(capNewFrame%2 == 0)
{
for(i=0;i<20;i++)
{
for(j=0;j<40;j++)
{
*(int *)(dis2Ybuffer + (260+i)*720 + (20+j) + 0x32a00) = 0xffffffff;
*(int *)(dis2Ybuffer + (260+i)*720 + (20+j) ) = 0xffffffff;
}
}
} */
/*************************************************************************************************/
/*当采集区的数据已经采集好,而显示缓冲区的数据已空*/
EVMDM642_waitusec(45000);
if(capNewFrame%2 == 0)//&&(disNewFrame == 1))
{ /*将数据装入显示缓冲区,并清采集完成的标志*/
//capNewFrame =0;
disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*传送Y缓冲区*/
DAT_copy((void *)(dis1Ybuffer + i * numPixels),
(void *)(findY + i * numPixels),
numPixels);
/*传送Cb缓冲区*/
DAT_copy((void *)(dis1Cbbuffer + i * (numPixels >> 1)),
(void *)(findCb + i * (numPixels >> 1)),
numPixels>>1);
/*传送Cr缓冲区*/
DAT_copy((void *)(dis1Crbuffer + i * (numPixels >> 1)),
(void *)(findCr + i * (numPixels >> 1)),
numPixels>>1);
}
if(!ED)
bt656_display_start(vpHchannel0);
error = search(findY,x,y);
if(error/*(cjbz>240)&(cjbz<400)*/)
{
ED=1;
//vpHchannel1 = bt656_8bit_ncfc(2);
//EVMDM642_waitusec(100);
VP_close(vpHchannel1);
VP_close(vpHchannel0);
//VP_close(vpHchannel0);
capNewFrame =0;
disNewFrame =0;
if(error>0)
{
if((c>=0)&&(c<=99))
c=c+1;
else
c=0;
n = error;
//error = 0;
for(m=0;m<n; m++)
{
for(i=0;i<10;i++)
{
line_x = x[m]+i;
line_t = 120+i;
if(!(line_x%2))
{
line_x = line_x/2;
line_t = line_t/2;
for(j=0;j<10;j++)
{
*(int *)(findY + (line_x)*720 + (y[m]+j) + 0x32a00) = 0xffffffff;
*(int *)(findCb + line_x*360 + (y[m]+j)/2 + 0x19500) = 0x55555555;
//*(int *)(findY + 120*720 + (y[m]+j) + 0x19500) = 0xffffffff;
*(int *)(findCr + line_x*360 + (y[m]+j)/2 + 0x19500) = 0x55555555;
}
}
else
{
line_x = line_x/2;
line_t = line_t/2;
for(j=0;j<10;j++)
{
*(int *)(findY + (line_x)*720 + (y[m]+j) ) = 0xffffffff;
*(int *)(findCb + line_x*360 + (y[m]+j)/2 ) = 0x55555555;
//*(int *)(findY + line_x*360 + (y[m]+j) ) = 0xffffffff;
*(int *)(findCr + line_x*360 + (y[m]+j)/2 ) = 0x55555555;
}
}
}
}
//GPVAL = GPVAL | 0x8000;
/*break;*/
}
/* for(i=0;i<numLines;i++)
{
/*传送Y缓冲区*/
/* DAT_copy((void *)(findY + i * numPixels),
(void *)(capYbuffer + i * numPixels),
numPixels);
/*传送Cb缓冲区*/
/* DAT_copy((void *)(findCb + i * (numPixels >> 1)),
(void *)(capCbbuffer + i * (numPixels >> 1)),
numPixels>>1);
/*传送Cr缓冲区*/
/* DAT_copy((void *)(findCr + i * (numPixels >> 1)),
(void *)(capCrbuffer + i * (numPixels >> 1)),
numPixels>>1);
}*/
if(threshold<40)
for(i=5;i<15;i++)
{
for(j=15;j<26;j++)
{
*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x5a5a5a5a;
*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x5a5a5a5a;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xf5f5f5f5;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0xf5f5f5f5;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
}
}
if((threshold>=40)&&(threshold<60))
for(i=5;i<15;i++)
{
for(j=15;j<26;j++)
{
*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x9a9a9a9a;
*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x9a9a9a9a;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x10101010;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x10101010;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x4b4b4b4b;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x4b4b4b4b;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
}
}
if((threshold>=60)&&(threshold<80))
for(i=5;i<15;i++)
{
for(j=15;j<26;j++)
{
*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x0;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x0;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
}
}
if((threshold>=80)&&(threshold<100))
for(i=5;i<15;i++)
{
for(j=15;j<26;j++)
{
*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
}
}
if(threshold>=100)
for(i=5;i<15;i++)
{
for(j=15;j<26;j++)
{
*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x49494949;
*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x49494949;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xe6e6e6e6;
*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0xe6e6e6e6;
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xb6b6b6b6;
*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0xb6b6b6b6;
}
}
for(i=0;i<288;i++)
{
/*传送Y缓冲区*/
DAT_copy((void *)(findY + i * numPixels),
(void *)(findY + 288*720+i * numPixels),
numPixels);
/*传送Cb缓冲区*/
DAT_copy((void *)(findCb + i * (numPixels >> 1)),
(void *)(findCb + 288*360+i * (numPixels >> 1)),
numPixels>>1);
/*传送Cr缓冲区*/
DAT_copy((void *)(findCr + i * (numPixels >> 1)),
(void *)(findCr + 288*360+i * (numPixels >> 1)),
numPixels>>1);
}
for(i=0;i<numLines;i++)
{
/*传送Y缓冲区*/
DAT_copy((void *)(findY + i * numPixels),
(void *)(dis1Ybuffer + i * numPixels),
numPixels);
/*传送Cb缓冲区*/
DAT_copy((void *)(findCb + i * (numPixels >> 1)),
(void *)(dis1Cbbuffer + i * (numPixels >> 1)),
numPixels>>1);
/*传送Cr缓冲区*/
DAT_copy((void *)(findCr + i * (numPixels >> 1)),
(void *)(dis1Crbuffer + i * (numPixels >> 1)),
numPixels>>1);
}
for(i=0;i<numLines;i++)
{
/*传送Y缓冲区*/
DAT_copy((void *)(findY + i * numPixels),
(void *)(dis2Ybuffer + i * numPixels),
numPixels);
/*传送Cb缓冲区*/
DAT_copy((void *)(findCb + i * (numPixels >> 1)),
(void *)(dis2Cbbuffer + i * (numPixels >> 1)),
numPixels>>1);
/*传送Cr缓冲区*/
DAT_copy((void *)(findCr + i * (numPixels >> 1)),
(void *)(dis2Crbuffer + i * (numPixels >> 1)),
numPixels>>1);
}
/************************************************************************************************************/
for(i=0;i<numLines;i++)
{
DAT_copy((void *)(findY + i * numPixels),
(void *)(dis3Ybuffer + i*2 * numPixels),
numPixels);
}
for(i=0;i<numLines;i++)
{
DAT_copy((void *)(findY + i * numPixels),
(void *)(dis3Ybuffer +( i*2+1) * numPixels),
numPixels);
}
/************************************************************************************************************/
vpHchannel0 = bt656_8bit_ncfd(2);
bt656_display_start(vpHchannel0);
ED=0;
ok=CreateFile(name[c],(Uint32)405798); //建立长度为54的空文件
if(ok==SD_FAIL)printf("error occur.\n"); //文件已存在,退出
WriteFile(name[3],(Uint32)0,(Uint32)405798,(Uint8 *)&findY/*(findY+(i*16384))*/); //将buffer写入文件
//最后记着把error清零。
}
}
}
for(;;)
{}
/*----------------------------------------------------------*/
/*采集与回放*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -