智能车制作

标题: for语句 [打印本页]

作者: 嘻哈芜痕    时间: 2014-5-8 12:06
标题: for语句
请问一下搞摄像头组的有没有遇到过数组里的for循环嵌套中的for循环语句中不可以有判断语句的情况吗???我在for循环嵌套的for语句中用到if判断语句是会报错说内存空间不足》》这是怎么回是》》》求解。。。。。
作者: rubick    时间: 2014-5-8 12:27
肯定不是嵌套和if的问题,是不是你在里面申请内部变量了?
作者: 凌心    时间: 2014-5-8 12:40
空间不足是编译后的问题,与语法无法的。
作者: 嘻哈芜痕    时间: 2014-5-8 12:54
rubick 发表于 2014-5-8 12:27
肯定不是嵌套和if的问题,是不是你在里面申请内部变量了?

就这么一段,,变量没在里面申请,而是在函数头申请的。只是调用到了内部变量而已
就在第二个for的判断中出错了,,把把第二个for中的if屏蔽掉就行,不然就出错了


  void black_extract(void)  
{  
   unsigned char  stop=0;     //停车圈数计数器
   unsigned char i=0,j=0,left=0,right=0,start_flag1=0,start_flag2=0;
   unsigned char left_line=0,right_line=0,left_edge=0,right_edge=0;
   int temp=0;
   unsigned char left_flag1=0,right_flag1=0,left_flag2=0,right_flag2=0;
   Line_Center[0]=Line_Center[ROW-1];
////////////////////////////////////////////////////
/////图像前部分用边缘检测法
///////////////////////////////////////////////////  
  for(i=ROW_START;i<ROW_MID;i++)     
  {   
     left=0; //左右跳变清零,这是必须的!!
     right=0;
     for(j=5;j<=COLUMN-5;j++) //两边搜索 最边界干扰略去  
     {
       if(Buffer1[j]-Buffer1[j+1]>0)
         {left=j;left_flag1++;}
       if(Buffer1[COLUMN-j]-Buffer1[COLUMN-j-1]>0)
         {right=COLUMN-j;right_flag1++;}
     }
    //////////求黑线的中心  
    if((left_flag1>=1) && (right_flag1>=1))
    {
      if((right-left>=BLACK_LINE_MIN0)&&(right-left<=BLACK_LINE_MAX0))    //过滤过宽过细的黑线    4. 80
      {  
          Line_Center=(right+left+1)/2;                           
          _asm(nop);
      }
    }
    else   /////////////////过宽过细黑线进行插值
      {
      if(i<3) Line_Center=Line_Center[i-1];
      else
       {temp=2*Line_Center[i-1]-Line_Center[i-2];
        if(temp>RIHGT_LIMIT)  temp=RIHGT_LIMIT;
        else if(temp<LEFT_LIMIT)   temp=LEFT_LIMIT;
        Line_Center=temp;}
      }   
  }



补充内容 (2014-5-8 13:22):
现在发现,如果那个数组在Buffer1[30][1~98]都行,,超过了98就会出现上面的问题
作者: 嘻哈芜痕    时间: 2014-5-8 13:03
凌心 发表于 2014-5-8 12:40
空间不足是编译后的问题,与语法无法的。

但出现了:Out of allocation space in segment RAM at address ox3463....
你说会是什么问题呢???

作者: 凌心    时间: 2014-5-8 13:22
嘻哈芜痕 发表于 2014-5-8 13:03
但出现了:Out of allocation space in segment RAM at address ox3463....
你说会是什么问题呢???

内存问题吧,重新分配下RAM吧。

作者: 沝祥):+    时间: 2014-5-8 14:39
我也出现了这个问题
作者: rubick    时间: 2014-5-9 20:28
分页问题




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2