智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2364|回复: 7
打印 上一主题 下一主题

for语句

[复制链接]

5

主题

14

帖子

0

精华

注册会员

Rank: 2

积分
164
威望
95
贡献
35
兑换币
42
注册时间
2014-1-11
在线时间
17 小时
毕业学校
广东白云学院
跳转到指定楼层
1#
发表于 2014-5-8 12:06:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问一下搞摄像头组的有没有遇到过数组里的for循环嵌套中的for循环语句中不可以有判断语句的情况吗???我在for循环嵌套的for语句中用到if判断语句是会报错说内存空间不足》》这是怎么回是》》》求解。。。。。
回复

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
2#
发表于 2014-5-8 12:27:36 | 只看该作者
肯定不是嵌套和if的问题,是不是你在里面申请内部变量了?
回复 支持 反对

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28415

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10438
贡献
11683
兑换币
4724
注册时间
2009-9-7
在线时间
3147 小时
3#
发表于 2014-5-8 12:40:39 | 只看该作者
空间不足是编译后的问题,与语法无法的。
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

注册会员

Rank: 2

积分
164
威望
95
贡献
35
兑换币
42
注册时间
2014-1-11
在线时间
17 小时
毕业学校
广东白云学院
4#
 楼主| 发表于 2014-5-8 12:54:30 | 只看该作者
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就会出现上面的问题
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

注册会员

Rank: 2

积分
164
威望
95
贡献
35
兑换币
42
注册时间
2014-1-11
在线时间
17 小时
毕业学校
广东白云学院
5#
 楼主| 发表于 2014-5-8 13:03:31 | 只看该作者
凌心 发表于 2014-5-8 12:40
空间不足是编译后的问题,与语法无法的。

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

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28415

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10438
贡献
11683
兑换币
4724
注册时间
2009-9-7
在线时间
3147 小时
6#
发表于 2014-5-8 13:22:57 | 只看该作者
嘻哈芜痕 发表于 2014-5-8 13:03
但出现了:Out of allocation space in segment RAM at address ox3463....
你说会是什么问题呢???

内存问题吧,重新分配下RAM吧。
回复 支持 反对

使用道具 举报

8

主题

48

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1052
威望
482
贡献
258
兑换币
298
注册时间
2013-10-3
在线时间
156 小时
毕业学校
湘潭大学
7#
发表于 2014-5-8 14:39:45 | 只看该作者
我也出现了这个问题
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
8#
发表于 2014-5-9 20:28:03 | 只看该作者
分页问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 18:37 , Processed in 0.251828 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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