atmega16有没什么简单的方法可以识别单片机是否是第一次上电
atmega16有没什么简单的方法可以识别单片机是否是第一次上电啊? 我做的个板子,挂在机台上运行,可能是机台内部有很多大功率的继电器,板子偶尔会跑飞,单片机是ATMEGA16,我用了看门狗,但是每次复位后都要初始化,费时间!所以有没什么简单的方法判断单片机是否是第一次上电呢?如果是第一次上电的话才初始化各个设备! 个人之见:跑飞了当然要初始化。
如果硬要避开初始化,则在几个RAM中写入特定的数值,如0X55。启动后检测是否值有变动,如果有变动,视为第一次上电,如果没有变动,视为第二次上电。
如何? AVR有个掉电的寄存器用来标志上次引起复位的原因,上电先读这个寄存器就知道单片机的复位源是什么了。但是话说跑飞后你还敢不重新初始化就继续工作?!!! 跑飞说明有干扰,有可能RAM寄存器等数据已经发生了变化,如果不初始化,可能后果很严重。 跑飞了你还是老实重新开始初始化吧 胆大不要紧,只要手艺足够高! huangdog 发表于 2012-11-30 23:23 static/image/common/back.gif
AVR有个掉电的寄存器用来标志上次引起复位的原因,上电先读这个寄存器就知道单片机的复位源是什么了。但是 ...
ATMEGA有那种寄存器吗?是哪个寄存器啊? MCUCSR hsztc 发表于 2012-12-1 12:55 static/image/common/back.gif
MCUCSR
MCUCSR这寄存器上的位都会在上电复位时被清零呢!来得及读取他们吗? zq6220 发表于 2012-12-2 11:07 static/image/common/back.gif
MCUCSR这寄存器上的位都会在上电复位时被清零呢!来得及读取他们吗?
你复位的时候并没有下过电,何来上电? 你这样做是没用滴,想办法改电路,硬件稳定做好 做好稳定性能是根本,不要费力治标不治本。
页:
[1]