AVR单片机定时器的问题

[复制链接]
查看11 | 回复3 | 2010-6-13 14:22:50 | 显示全部楼层 |阅读模式
小弟刚开始学AVR单片机,今天看了定时器一章,但搞不懂它是咋工作的。比如说51单片机的定时器在使用时首先要打开定时器,但是AVR单片机的定时器我看了几个别人的代码都只有结束的上限值但却不知道它是什么时候打开的,也就是说定时器什么时候开始计时的。
迫切希望大侠们的指教!
小弟在此先谢过。。。

回复

使用道具 举报

千问 | 2010-6-13 14:22:50 | 显示全部楼层
我能理解的意思。51单片机要置一个定时器启动时要置TR0或者TR1为“1”定时器才能工作。你的意思是不是AVR单片机如何像这样启动定时器,是吗?对于AVR单片机,(我拿Atmega8的TM0做比方,其他的也差不多的)有一个寄存器TCCR0.它上电复位以后值是0x00。也就是说,如果你不去动他,定时器是不会工作的。当你最后三位设定了一系列数值,它开始安照某些方式工作。(可以以定时器的方式,也可以以计数器的方式工作)比如你写TCCR0=0x01;//0x01=0000,0001B。 那么就是说你把最后一位置1了。定时器开始启动,并且以时钟频率(如果外接晶振为1Mhz)就以1us加1的频率,减去TCNT0中的数值,TCNT0初始化值也是0x0
回复

使用道具 举报

千问 | 2010-6-13 14:22:50 | 显示全部楼层
只要时钟选择设置好了就开始工作了,T0是控制寄存器TCCR0的bit2:0;
回复

使用道具 举报

千问 | 2010-6-13 14:22:50 | 显示全部楼层
就是说TC0吧,他工作在普通模式时,是溢出中断,假如你设置他的计数器TCNT0的初值为0,那加到255,然后下个脉冲来了,就产生了溢出中断。工作在CTC模式时,就是匹配中断。就是当TCNT0的值加到和你设置的OCR0的值相等时,这个时候就是匹配了,也产生中断。还有2个工作模式,也差不多的。工作模式都是通过软件设置的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行