ATmega16单片机定时器停止不了

这个问题纠结我好长时间。前段时间想用ATmega16单片机的定时器1做个99秒倒计时的装置。发现时间到0后定时器关闭不了。用的8MHz晶振,数码管显示。编译器是iccav... 这个问题纠结我好长时间。前段时间想用ATmega16单片机的定时器1做个99秒倒计时的装置。发现时间到0后定时器关闭不了。用的8MHz晶振,数码管显示。编译器是iccavr v6.31a,程序中定义char time=99;来计时。定时器初始化函数如下:void T1_init(){ TCCR1B=0X04; TCNT1H=0X85; TCNT1L=0XED; TIMSK |= BIT(2); SREG |= BIT(7);}定时器的中断服务程序如下:#pragma interrupt_handler T1:9void T1(){ TCNT1H=0X85; TCNT1L=0XED; time--; if (time <= 0) TIMSK &= ~BIT(2);}这样发现时间到0后,定时器没能停止,不过继续显示的是乱码。如果把中断服务程序里判断时间是否为零的语句改成if (time ==0)定时器就可以正常停止。这是为啥啊?哪位大师指点一下小弟? 展开
 我来答
wangweinan247
2011-12-10 · TA获得超过295个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:98.4万
展开全部
atmega的单片机没有运行控制位,停止不了,不像51,可以给一个TR0=0就可以停止了!
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
zhang_xin_gui3
2011-12-12 · 超过16用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:46.4万
展开全部
TCCR1B = 0x00 就可以停止计数器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式