• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

atmega88v省电模式下定时中断不准,ATMEL中国办事处也没搞定,请求支援啊

大家好,很久以前我用atmega88v时需要用到省电模式,在省电模式下将TIMER2开启,并且定时时间设置为0.5秒,在主程序中全部是NOP,大概几十条吧,在每次定时唤醒后在一个IO口上面的做一个取反操作,用LED灯可以看到定时是否正确,在仿真时全速跑起来后,可以看到LED灯有一点点闪亮,不过要用手捧住LED灯才能看到,这里暂停,再全速跑起来后,LED灯以1HZ闪烁,定时正常,这种情况我不知道是仿真器问题还是什么问题,这个都是小问题,但关键是,每加一条NOP这样仿真一次,当NOP加到一定数量时(不需要太多,总共几十条吧),LED灯怎么样都无法以1HZ闪烁了,经测试定时时间正常快了一倍,也就是原来的0.5秒变成了0.25秒了,但LED灯闪烁也不是按照0.25秒亮灭显示的,很郁闷,我们公司的同事全玩了一遍都搞不定,后来找技术支持,技术支持那边以看不懂汇编为由没有处理,我就直接找的ATMEL驻深圳办事处的人帮我解决,那边的人也看到现象了,他们那边好几个工程师都玩了一遍也没有搞定,听说还发到什么挪威设计中心去了,不过都没有什么好的消息反馈回来,各位大侠如果有兴趣可以玩一下这个程序,一起来找一找什么原因 1019111194925207.rar
全部回复(6)
正序查看
倒序查看
leasor
LV.3
2
2007-11-13 22:16
1. 省电模式下,IO口的驱动能力会下降的,灯不亮的原因

2. 涉及到NOP的实现机理,

台湾人的做法是, MOV A,A >> NOP
老外是怎么实现,我不清楚.
0
回复
2007-12-01 21:50
@leasor
1.省电模式下,IO口的驱动能力会下降的,灯不亮的原因2.涉及到NOP的实现机理,台湾人的做法是,MOVA,A>>NOP老外是怎么实现,我不清楚.
感谢兄台指点,你说的IO口的睡眠模式下的驱动能力有所下降有这个可能,但是我只是用它来指示时间的准确性而已,不亮也没关系,主要是定时时间确实要比睡眠前快一倍,这个我就不明白了
0
回复
zhiwei
LV.2
4
2007-12-02 17:08
使用的是哪里的时钟?是否振荡器停止了还是怎么了?
0
回复
2007-12-02 21:03
@zhiwei
使用的是哪里的时钟?是否振荡器停止了还是怎么了?
内部高速时钟用于执行程序,外部32768给定时器2作为时钟源,定时器2为0.5秒定时中断,在睡眠模式下只有定时器2中断才能唤醒,晶振没有停振
0
回复
xhdzwzj
LV.3
6
2008-06-03 19:36
我用ATMEGA48V做了一个电子表,用TC2中断唤醒,正常模式下外部电源供电时钟很精确,外部电源切断时进到省电模式用CR2032供电,一旦进入省电模式后,时钟就走快.也不知道什么原因,请高手指教
0
回复
namin
LV.6
7
2008-09-25 10:02
@xhdzwzj
我用ATMEGA48V做了一个电子表,用TC2中断唤醒,正常模式下外部电源供电时钟很精确,外部电源切断时进到省电模式用CR2032供电,一旦进入省电模式后,时钟就走快.也不知道什么原因,请高手指教
关注
0
回复