智能车制作
标题:
K60程序运行卡死
[打印本页]
作者:
盛夏的果实
时间:
2015-5-4 22:13
标题:
K60程序运行卡死
开始好好的,一到某个图像就卡死了,无法执行,但是在线运行是同样情况不卡死,只有刷机去之后执行才卡死,最后发现是一一段程序,把他屏蔽就好了,但是我没发现有什么能陷入死循环的错误啊,发上来望诸位大神忙慢看看图像采集完才处理,个变量在处理前都复位了
if(g_RightEdgeNum>10&&!dip&&!zhijiao)
{ rightguailine=0;leftguailine=0;
for(i=2;i< g_RightEdgeNum-2; i ++) //找拐点
{
if((g_LeftEdge[i].y-g_LeftEdge[i+2].y)>19&&(g_LeftEdge[i].y-g_LeftEdge[i-2].y)>19) // 左拐点
{
leftguailine=i;
}
else if((g_RightEdge[i+2].y-g_RightEdge[i].y)>19&&(g_RightEdge[i-2].y-g_RightEdge[i].y)>19) //右拐点
{
rightguailine=i;
}
if(rightguailine&&leftguailine)
break;
}
if(rightguailine<33&&rightguailine>0&&g_RightEdge[rightguailine].y>1&&g_LeftEdge[rightguailine].y==0) //右拐点
{
for(i=rightguailine+1;i<g_RightEdgeNum; i ++)
{
if(g_LeftEdge[i].y>15&&g_LeftEdge[i-1].y==0&&g_RightEdgeNum-i>2&&!r_buxian)//跃变
{
r_buxian=1;break;
}
else if(twocoverline==0&&!r_buxian)
{
left=0;
for(i=0;i<g_RightEdgeNum;i++)
{
if(g_LeftEdge[i].y==0)
left++;
else
break;
}
if(left-rightguailine>4)
{ r_buxian=1;break;}
else
r_buxian=0;
}
}
if(twocoverline>0&&!r_buxian)
{
if(twocoverline-rightguailine<20&&rightguailine>0&&g_LeftEdge[twocoverline-1].y==0&&g_RightEdge[twocoverline-1].y==MAX_VIDEO_POINT-1)
{
r_buxian=1;
}
else
r_buxian=0;
}
}
if(r_buxian)
{
int a=0;
ten=1;
for(i=rightguailine;i>=0;i--)
{
if(g_RightEdge[i].y==MAX_VIDEO_POINT-1)
{
a=i;
break;
}
else
a=0;
}
righterror=(g_RightEdge[a].y-g_RightEdge[rightguailine].y)/( rightguailine-a);
lefterror=g_LeftEdge[rightguailine].y-g_LeftEdge[rightguailine-1].y;
for(i= rightguailine+1;i<g_RightEdgeNum;i++)
{
g_LeftEdge[i].y=g_LeftEdge[i-1].y+lefterror;
g_RightEdge[i].y=g_RightEdge[i-1].y-righterror;
if(g_LeftEdge[i].y<0)
{
g_LeftEdge[i].y=0;
}
if(g_RightEdge[i].y<=0)
{
g_RightEdge[i].y=0;
g_RightEdgeNum=i;
break;
}
}
}
if(leftguailine<28&&leftguailine>0&&g_RightEdge[leftguailine].y==MAX_VIDEO_POINT-1) //左拐点
{
for(i=leftguailine+1;i<g_RightEdgeNum; i ++)
{
if(MAX_VIDEO_POINT-g_RightEdge[i].y>15&&g_RightEdge[i-1].y==MAX_VIDEO_POINT-1&&g_RightEdgeNum-i>2&&!l_buxian) //跃变
{
l_buxian=1;break;
}
else if(twocoverline==0&&!l_buxian)
{
right=0;
for(i=0;i<g_RightEdgeNum;i++)
{
if(g_RightEdge[i].y==MAX_VIDEO_POINT-1)
right++;
else
break;
}
if(right-rightguailine>4)
{ l_buxian=1;break;}
else
l_buxian=0;
}
}
if(twocoverline>0&&!l_buxian)
{
if(twocoverline-rightguailine<20&&leftguailine>0&&g_LeftEdge[twocoverline-1].y==0&&g_RightEdge[twocoverline-1].y==MAX_VIDEO_POINT-1)
{
l_buxian=1;
}
else
l_buxian=0;
}
}
if(l_buxian)
{
int a=0;
ten=1;
for(i=leftguailine;i>=0;i--)
{
if(g_LeftEdge[i].y==0)
{
a=i;
break;
}
else
a=0;
}
lefterror=(g_LeftEdge[leftguailine].y-g_LeftEdge[a].y)/( leftguailine-a);
righterror=g_RightEdge[leftguailine].y-g_RightEdge[leftguailine-1].y;
for(i= leftguailine+1;i<g_RightEdgeNum;i++)
{
g_LeftEdge[i].y=g_LeftEdge[i-1].y+lefterror;
g_RightEdge[i].y=g_RightEdge[i-1].y+righterror;
if(g_RightEdge[i].y>MAX_VIDEO_POINT-1)
g_RightEdge[i].y=MAX_VIDEO_POINT-1;
if(g_LeftEdge[i].y>=MAX_VIDEO_POINT-1)
{
g_LeftEdge[i].y=MAX_VIDEO_POINT-1;
g_RightEdgeNum=i;
break;
}
}
}
}
作者:
盛夏的果实
时间:
2015-5-4 22:14
自己先顶一下
作者:
盛夏的果实
时间:
2015-5-4 22:23
就是这种情况,左右晃动小车,画面就会卡在一个地方,复位后直接不显示,舵机等其他程序好像也无法执行
作者:
盛夏的果实
时间:
2015-5-4 22:29
怎么没人啊
作者:
盛夏的果实
时间:
2015-5-5 10:09
心冷了,没人遇到这种情况吗?
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2