AVR单片机定时器的问题
小弟刚开始学AVR单片机,今天看了定时器一章,但搞不懂它是咋工作的。比如说51单片机的定时器在使用时首先要打开定时器,但是AVR单片机的定时器我看了几个别人的代码都只有结...
小弟刚开始学AVR单片机,今天看了定时器一章,但搞不懂它是咋工作的。比如说51单片机的定时器在使用时首先要打开定时器,但是AVR单片机的定时器我看了几个别人的代码都只有结束的上限值但却不知道它是什么时候打开的,也就是说定时器什么时候开始计时的。
迫切希望大侠们的指教!
小弟在此先谢过。。。 展开
迫切希望大侠们的指教!
小弟在此先谢过。。。 展开
1个回答
2013-08-21
展开全部
我能理解的意思。51单片机要置一个定时器启动时要置TR0或者TR1为“1”定时器才能工作。你的意思是不是AVR单片机如何像这样启动定时器,是吗?
对于AVR单片机,(我拿Atmega8的TM0做比方,其他的也差不多的)有一个寄存器TCCR0.它上电复位以后值是0x00。也就是说,如果你不去动他,定时器是不会工作的。当你最后三位设定了一系列数值,它开始安照某些方式工作。(可以以定时器的方式,也可以以计数器的方式工作)
比如你写TCCR0=0x01;//0x01=0000,0001B。
那么就是说你把最后一位置1了。定时器开始启动,并且以时钟频率(如果外接晶振为1Mhz)就以1us加1的频率,减去TCNT0中的数值,TCNT0初始化值也是0x00,如果你写一个数值比如说0x10,则这个定时器到256-10=246.246us以后就溢出了。如果你设置定时器中断为,并开全局中断位,这溢出以后它会产生一个中断信号,程序运行到中断处,这些和51单片机就一样了。
具体的用法你可以参考一下相关芯片的数据手册。
对于AVR单片机,(我拿Atmega8的TM0做比方,其他的也差不多的)有一个寄存器TCCR0.它上电复位以后值是0x00。也就是说,如果你不去动他,定时器是不会工作的。当你最后三位设定了一系列数值,它开始安照某些方式工作。(可以以定时器的方式,也可以以计数器的方式工作)
比如你写TCCR0=0x01;//0x01=0000,0001B。
那么就是说你把最后一位置1了。定时器开始启动,并且以时钟频率(如果外接晶振为1Mhz)就以1us加1的频率,减去TCNT0中的数值,TCNT0初始化值也是0x00,如果你写一个数值比如说0x10,则这个定时器到256-10=246.246us以后就溢出了。如果你设置定时器中断为,并开全局中断位,这溢出以后它会产生一个中断信号,程序运行到中断处,这些和51单片机就一样了。
具体的用法你可以参考一下相关芯片的数据手册。
深圳思驰科技有限公司_
2024-10-23 广告
2024-10-23 广告
深圳思驰科技是国内先进入芯片解密领域的公司,拥有数十年的丰富经验,成功帮助国内外企业、政府及知名科研机构攻克多个技术难题。在医疗电子、工控设备、军事航天、通信设备、广电设备、交通设备、汽车电子、家用电子等行业都成功推出了多款创新产品,熟悉这...
点击进入详情页
本回答由深圳思驰科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询