智能车制作
标题:
摄像头采集问题 求解答
[打印本页]
作者:
yhyh
时间:
2014-4-1 14:09
标题:
摄像头采集问题 求解答
**********************************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 24 void PTJ7(void)
{ INT8U i,j;
//INT8S k = 0;
//INT8S NextFlag = 0;
//INT8S cnt = 0;
//INT8U l_BlackStartDot = 0;
if((PIFJ&0x80)==0x80) //判断中断标志,行中断信号
PIFJ = 0x80; //清除行中断标志
//Delay_us(240);
if(VIDEO_STOP != g_VideoFlag)
{
if(VIDEO_WAIT == g_VideoFlag)
{
g_VideoLine ++;
if(g_VideoLine >= VIDEO_START_LINE) //从该行开始采集
{
g_VideoLine = 0; //归零以便采集
g_VideoImageLine = 0;
g_VideoFlag = VIDEO_ACQUISITION;
}
}
else if(VIDEO_ACQUISITION == g_VideoFlag) // 开始采集数据
{
g_VideoLine ++;
if(g_VideoLine % 7 == 0) // 每隔7行采集一行
{
for(i = 0;i < MAX_VIDEO_POINT + VIDEO_START_POINT;i ++) // 每行采集所需的点数
{
g_VideoLineData
= (VIDEO_PORT);
}
}
else if(g_VideoLine % 7 ==4) // 一行采集完,转移数据至数据数组
{
for(i = 0; i < MAX_VIDEO_POINT; i ++)
{
(g_VideoImageData[g_VideoImageLine]
= g_VideoLineData[i+VIDEO_START_POINT];
}
g_VideoImageLine ++;
if(g_VideoImageLine >=MAX_VIDEO_LINE)//为什么会卡在这儿,单步调试进不了这儿
{ //不管采集列有好少,好像都被卡在这儿了
g_VideoFlag = VIDEO_FINISH;
}
}
}
else if( VIDEO_FINISH == g_VideoFlag) // 采集结束,数据处理
{
g_ValidLine = 0; //有效行归零
t_VSYN = 0;
PIEJ_PIEJ7 = OFF; //关闭行中断
///////////向上位机发送图像///////////////////////////////
g_SCI0SendVideoImageEnable = SEND_IMAGE_ENABLE;
if(g_SCI0SendVideoImageEnable)
{
SCI0SendByte(0x00);
SCI0SendByte(0xff);
SCI0SendByte(0x01);
SCI0SendByte(0x00);
for(i = 0;i < MAX_VIDEO_LINE;i ++)
for(j = 0;j < MAX_VIDEO_POINT;j ++)
SCI0SendByte(g_VideoImageData
[j]);
/* for(i = 0;i < MAX_VIDEO_LINE; i++)
{
SCI0SendByte(g_BlackPositionCenter
);
} */
}
}
}
}
#pragma CODE_SEG DEFAULT
作者:
yhyh
时间:
2014-4-1 15:44
[attach]57821[/attach]
请问第一行出现了好像是上一场的图像怎么破,行消隐可以向右边移位吗?
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2