智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1069|回复: 4
打印 上一主题 下一主题

K60程序运行卡死

[复制链接]

14

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
威望
1231
贡献
784
兑换币
794
注册时间
2014-4-3
在线时间
380 小时
跳转到指定楼层
1#
发表于 2015-5-4 22:13:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开始好好的,一到某个图像就卡死了,无法执行,但是在线运行是同样情况不卡死,只有刷机去之后执行才卡死,最后发现是一一段程序,把他屏蔽就好了,但是我没发现有什么能陷入死循环的错误啊,发上来望诸位大神忙慢看看图像采集完才处理,个变量在处理前都复位了


  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;
                }
              }            

            }

}



回复

使用道具 举报

14

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
威望
1231
贡献
784
兑换币
794
注册时间
2014-4-3
在线时间
380 小时
2#
 楼主| 发表于 2015-5-4 22:14:28 | 只看该作者
自己先顶一下
回复 支持 反对

使用道具 举报

14

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
威望
1231
贡献
784
兑换币
794
注册时间
2014-4-3
在线时间
380 小时
3#
 楼主| 发表于 2015-5-4 22:23:27 | 只看该作者
就是这种情况,左右晃动小车,画面就会卡在一个地方,复位后直接不显示,舵机等其他程序好像也无法执行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

14

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
威望
1231
贡献
784
兑换币
794
注册时间
2014-4-3
在线时间
380 小时
4#
 楼主| 发表于 2015-5-4 22:29:14 | 只看该作者
  怎么没人啊
回复 支持 反对

使用道具 举报

14

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
威望
1231
贡献
784
兑换币
794
注册时间
2014-4-3
在线时间
380 小时
5#
 楼主| 发表于 2015-5-5 10:09:25 | 只看该作者
心冷了,没人遇到这种情况吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-2-23 05:17 , Processed in 0.043375 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表