原创 A人之恶习---满地的全局变量

2009-1-21 22:19 3363 6 7 分类: MCU/ 嵌入式
hotpower 发表于 2009-1-21 22:21 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

3楼: A人之恶习---满地的全局变量


下面的程序很典型~~~全局变量soft_dog_timer
首先不考虑是否合理,若soft_dog_timer是主程序和中断服务程序共有的变量

则建议加volatile修饰全局变量soft_dog_timer

因为全局变量soft_dog_timer是主程序和中断服务程序共有的变量。
uchar可能问题不大,但uint肯定会出数据临界的问题。

若全局变量soft_dog_timer只在某个函数或中断服务程序中使用,
则一个考虑局部变量,若soft_dog_timer要长期生存,则应该考虑

在某个函数或中断服务程序中申请静态的局部变量。

全局变量的最大坏处是在任何地方都可对之修改,故很不安全~~~

所以:A人之恶习---满地的全局变量


例如:(俺对事不对人~~~望Batistuta_谅解之)

Batistuta_ 发表于 2009-1-18 17:50 侃单片机 ←返回版面   举报该贴

#define    SOFT_DOG_TIME  XX    // xx小于硬件狗溢出时间的一半
bit   flg_soft_dog=0;
uchar soft_dog_timer=0;
main()
{
  ...
  while(1)
  {
     ...
     //-----------------
     flg_soft_dog = 0;
     //-----------------
     ...
  }
}

time_interrupt()    //通用定时器
{
  ...
  //--------------------------
  soft_dog_timer++;
  if(soft_dog_timer>=SOFT_DOG_TIME)
  {
     soft_dog_timer = 0;
  }   
  if(flg_soft_dog)
  {
     soft_reset();        //软件复位
  }
  else
  {
     flg_soft_dog = 1;
  }
  //--------------------------
  ...    
}





http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=3213530

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1415597 2009-1-22 16:49

楼主好博学啊
相关推荐阅读
雁塔菜农 2012-04-05 17:51
2012年度新唐Cortex-M0助学开发套件有约束条件赠送申报贴
2012年度新唐Cortex-M0助学套件从4月起每月有约束条件发放16套。 申报人必须是21ic或 EDNC 会员 并具备1月的会龄。 申报时必须注明“遵守约束条件,缴纳250元订金,上...
雁塔菜农 2012-04-05 17:04
2012年度Cortex-M0助学园地推广框图
...
雁塔菜农 2012-04-01 17:59
2012年度Cortex-M0助学园地奖励计划细则
抢楼请点击:菜地公告:即日起创建《菜农Cortex-M0助学园地》(盖楼入口) 每月10号和25号的下午2:50进行2次抢楼,规则同去年12月的疯狂抢楼活动。 奖品由21IC、北航、广州迪圣...
雁塔菜农 2012-02-03 08:19
菜农谋略:搞定牛人宋俊德,对女牛人孙昌旭说:“记住,俺是雁塔菜农~~~ ”
http://www.baidu.com/s?wd=%B2%CB%C5%A9%D0%A6%CC%B8%A1%B6%D0%C2%C0%CB%C3%FB%C8%CB%D0%A7%D3%A6%A1%B7...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条