当前位置:首页 > 单片机 > 单片机
[导读] AVR有三个定时计数器,其中定时计数器0和定时计数器2是8位的,定时计数器1是16位。在学习AVR定时计数器时,刚开始被一大堆的寄存器搞的有点晕了,后来认真的把Datasheet中的有关寄存器先看了一遍,再重

 

AVR有三个定时计数器,其中定时计数器0和定时计数器2是8位的,定时计数器1是16位。

在学习AVR定时计数器时,刚开始被一大堆的寄存器搞的有点晕了,后来认真的把Datasheet中的有关寄存器先看了一遍,再重新看定时计数器的内容才理清了。这里做个总结吧,加深自己的印象。

定时计数器0和定时计数器2基本上是相同的。以定时计数器0来总结它的几种工作模式的不同。

 

普通模式:不做介绍,和51里面是一模一样的。

 

CTC模式:当寄存器TCNT0与OCR0相等时(即匹配),OC0按照COM0[1:0]的值相应的改变(置位,清零或取反)。同时TCNT0清零,TCNT0从0x00重新开始计数,当计数结果和下一个OCR0寄存器中值相等时又发生匹配。发生匹配时,匹配比较标志OCF0置位,即OCF0=1,可申请匹配比较中断。

 

快速PWM模式:当寄存器TCNT0与OCR0匹配相等时,OC0按照COM0[1:0]的值相应的置位或清零。与CTC模式不同的是TCNT0不会清零,而是继续计数,直到计数为0XFF,此时OC0会发生清零或置位。同时TCNT0从0x00重新开始计数,当计数结果和下一个OCR0寄存器中值相等时又发生匹配。与CTC模式不同发生匹配时,OCF0不会置位。TCNT0计数到0XFF时,计数溢出标志TOV0置位,即TOV0=1,此时可申请溢出中断。

 

相位可调PWM模式:此模式下,定时计数器是双向计数器(可加可减),,从0x00一直加到0xff,在下一个计数脉冲到来时从0xff一直减到0x00。当COM0[1:0]=2时,在加的过程中,若发生匹配,清零OC0;在减的过程中,若发生匹配,置位OC0。(当COM0[1:0]=3时,和COM0[1:0]=2的情况相反)。与快速PWM模式不同的是,当TCNT0计数到0xff时不会影响到OC0的输出,而是当从0xff减到0x00的过程中与下一个OCR0寄存器的值匹配时,OC0发生改变(加的过程是清零,那这时应该是置位)。当定时计数器计数到0x00时,计数溢出标志TOV0置位,即TOV0=1,此时可申请溢出中断。

 

以上几种工作模式同时适合定时计数器0,1,2。只是定时计数器1的功能有所增强。下面将会讨论。

 

星期二我看一个程序时候,那个程序是工作在快速PWM模式,选择计数溢出中断。当时我还想为什么不选择匹配中断而要去等到计数溢出才中断岂不是占用时间了,还去问老师了,现在看来是多么的愚蠢!快速PWM模式根本就没有匹配中断!

 

定时计数器0和2,在CTC模式下,频率和相位可调。PWM模式下,频率不可调。由频率计数公司就可以看出。不论是CTC还是PWM都可以通过调节OCRn的值去调节占空比。(关于产生PWM波频率的计算公式将会在后文给出的,关于定时计数器的各种寄存器可自己去查看Datasheet)

 

下面是定时计数器1比0和2的增强功能总结:

1)定时计数器1比0和2有许多增强功能。在PWM模式时,可产生频率和相位都可调的PWM波,这时8位定时计时器0和2所做不到的,因为定时计数器1具备输入捕获功能,即具备输入捕获寄存器ICR1,在PWM模式下,ICR1中可存放一个top值,就是这个top值可以改变PWM波的频率。这点可在频率计算公司看出。

 

2)定时计数器1有两个输出比较单元和两个输出比较寄存器OCR1A和OCR1B,因此可同时产生2路频率相同,占空比不同的PWM波形。占空比的调整当然由OCR1A和OCR1B来确定。波形在OC1A和OC1B引脚输出。

 

3)定时计数器1具有输入捕获单元。可以精确的记录外部事件发生的时间。捕获外部事件的信号由引脚ICP1输入。当输入捕获信号产生,TCNT1中的计数值将被写入输入捕获寄存器ICR1(ICR1H,ICR1L)中去。输入捕获信号也可由模拟比较器的AC0单元的输出信号来触发。关于触发的方式有两种,当定时计数器1的控制寄存器B(即TCCR1B)中的第六位ICESE=0,下降沿触发;ICESE=1,上升沿触发。当满足触发条件时,输入捕获单元开始捕获该事件的发生。利用该功能可以来对输入波形频率的测量。如果我没有记错的话在51里面定时计数器也有这个功能的,可以有GATE门控位的设置来达到这个目的。51里面,把GATE置位,那么此时定时计数器的启动由INTX(X=0或1)引脚和TRX(X=0或1)来决定。可先把TRX置位,让定时计数的启动条件还欠缺INTX为高电平(即先让INTX处于低电平),等待INTX变为高电平,那么此时定时计数器启动了,等到INTX变为低电平时定时计数器又被关闭了,那么此时定时计数器计数值即为一个PWM脉宽了。

 

说到这里突然想到了在AVR里面,定时计数器都有自己的分频器,这里也可以先设置定时计数器的启动条件都满足,但设置为无分频,此时相当于人没有了心脏,定时计数器此时是不工作的。可以在其他什么条件(如一个外部中断里面)满足时,给定时计数器分频,此时定时计数器才工作!

 

刚才说到中断,与51不同的是,AVR对中断标志位清“0”的操作时向该位写“1”。即AVR清除中断标志位是软件写“1”。值得提醒的是在设置中断寄存器的时候,最好先清除中断标志位,然后马上将相应的中断允许控制位值“1”。

 

这里还需要说明的是上文提及到的定时计数器波形输出引脚和输入捕获引脚,在使用之前,必须要先设置好它的方向寄存器是输出还是输入。如果是输入的话还需要考虑是否需要上拉电阻。

 

说了这么多,差点忘记了个人觉得比较重要的一点。定时计数器1是16位的,它的每一个16位的寄存器分别配备了一个8位的TEMP寄存器,用来临时性的保留寄存器的高8位数据。MCU从16位寄存器读数据时时,低8位被送到MCU的同时,高8位被送到TEMP,当MCU读高8位时取的是TEMP中的数据。从MCU写数据16位数据寄存器时,高8位写到TEMP,写低8位的时候,低8位与TEMP中的高8位组成16位数据写到16位寄存器中。即读的时候是先读低8位,再读高8位;写的时候是先写高8位,再写低8位。

 

最后给出定时计数器常用3种工作模式的设置方法(以定时计数器1为例):

普通模式:

1,根据需要设置时钟源,即设置控制寄存器TCCR1B。

2,根据定时时间和时钟源确定定时器的初值写入到数据寄存器TCNT1H和TCNT1B。

3,设置中断时能位。

4,选择中断号,编写中断服务程序。注意需要在中断服务程序中重载初值写入到TCNT1H和TCNT1B(和51一样的)!

CTC模式:

1,若输出波形,设置端口OC1A或OC1B为输出方式。

2,设置波形发生模式,选择需要的时钟源,即TCCR1B。

3,设置输出模式,即TCCR1A。

4,根据需要设置上限值top(前面提到过的)写入到输出比较寄存器OCR1A。

5,根据公式计算频率。

快速PWM模式:

1,若输出波形,设置端口OC1A或OC1B为输出方式。

2,设置PWM波形模式,选择需要的时钟源,即TCCR1A和TCCR1B。

3,设置波形的频率,即OCR1A。

4,设置波形占空比,即OCCR1B。

6,根据频率公式计算频率。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭