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)定时器就可以正常停止。这是为啥啊?哪位大师指点一下小弟?
展开
2个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询