Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1086414
  • 博文数量: 121
  • 博客积分: 2021
  • 博客等级: 上尉
  • 技术积分: 1467
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 21:47
个人简介

简约而不简单。

文章分类

全部博文(121)

文章存档

2017年(1)

2016年(4)

2015年(2)

2014年(24)

2013年(33)

2012年(13)

2011年(25)

2010年(13)

2009年(6)

分类: 嵌入式

2012-03-30 16:36:28

1.EEPROM 在默认情况下是要在下载程序时擦除的,这样会导致之前调试写进去的数据在下次烧程序时被擦除,解决办法是设置 系统熔丝位 EESAVE=1,这样就可以保留原理EEPROM中的数据了。。
2.熔丝位的设置不是通过程序中实现的,而是设置编程器来实现的。
3.用AVR studio编程好像全局变量不变,读出的老是0:
很多编译器会对代码进行优化,包括对全局变量的一些优化。
比如 AVR Studio就会对全局变量进行优化。 优化的情况如下: 若在主函数的死循环中不断地对此全局变量进行判断或者其它,编译器不会每次都从原地址取值(原地址即为全局变量所在的位置),而是从缓存中取值(如Rn寄存器)。即使在其它函数中对此全局变量进行了修改(如中断程序或者其它),也不会影响到主函数对此全局变量的判断(即判断出错),解决这种问题的办法就是在定义全局变量时加上volatile关键字(如volatile unsigned char i),以告诉编译器不要对此全局变量进行优化,即每次要用到此全局变量时都从原地址取值。
阅读(2766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~