简述AVR单片机定时器

发布者:jingyan最新更新时间:2020-02-07 来源: eefocus关键字:AVR  单片机  定时器 手机看文章 扫描二维码
随时随地手机看文章

AVR定时器的要点介绍


M16的T1 16位定时器一共有15种工作模式,其他2个8位定时器(T0/T2)相对简单,除了T2有异步工作模式用于RTC应用外


(可以利用溢出中断和比较匹配中断作定时功能)


分5种工作类型


1 普通模式 WGM1=0


跟51的普通模式差不多,有TOV1溢出中断,发生于TOP时


1 采用内部计数时钟 用于 ICP捕捉输入场合---测量脉宽/红外解码


(捕捉输入功能可以工作在多种模式下,而不单单只是普通模式)


2 采用外部计数脉冲输入 用于 计数,测频


其他的应用,采用其他模式更为方便,不需要像51般费神


2 CTC模式 [比较匹配时清零定时器模式] WGM1=4,12


跟51的自动重载模式差不多


1 用于输出50%占空比的方波信号


2 用于产生准确的连续定时信号


WGM1=4时, 最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断


WGM1=12时,最大值由ICF1设定, TOP时产生ICF1输入捕捉中断


注:WGM=15时,也能实现从OC1A输出方波,而且具备双缓冲功能


计算公式: fOCn=fclk_IO/(2*N*(1+TOP))


变量N 代表预分频因子(1、8、32,64、256,1024)。


3 快速PWM模式 WGM1=5,6,7,14,15


单斜波计数,用于输出高频率的PWM信号(比双斜波的高一倍频率)


都有TOV1溢出中断,发生于TOP时


比较匹配后可以产生OCF1x比较匹配中断.


WGM1=5时, 最大值为0x00FF, 8位分辨率


WGM1=6时, 最大值为0x01FF, 9位分辨率


WGM1=7时, 最大值为0x03FF,10位分辨率


WGM1=14时,最大值由ICF1设定, TOP时产生ICF1输入捕捉中断 (单缓冲)


WGM1=15时,最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断(双缓冲,但OC1A将没有PWM能力,最多只能输出方波)


改变TOP值时必须保证新的TOP值不小于所有比较寄存器的数值


注意,即使OCR1A/B设为0x0000,也会输出一个定时器时钟周期的窄脉冲,而不是一直为低电平


计算公式:fPWM=fclk_IO/(N*(1+TOP))


4 相位修正PWM模式 WGM1=1,2,3,10,11


双斜波计数,用于输出高精度的,相位准确的,对称的PWM信号


都有TOV1溢出中断,但发生在BOOTOM时


比较匹配后可以产生OCF1x比较匹配中断.


WGM1=1时, 最大值为0x00FF, 8位分辨率


WGM1=2时, 最大值为0x01FF, 9位分辨率


WGM1=3时, 最大值为0x03FF,10位分辨率


WGM1=10时,最大值由ICF1设定, TOP时产生ICF1输入捕捉中断 (单缓冲)


WGM1=11时,最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断(双缓冲,但OC1A将没有PWM能力,最多只能输出方波)


改变TOP值时必须保证新的TOP值不小于所有比较寄存器的数值


可以输出0%~100%占空比的PWM信号


若要在T/C 运行时改变TOP 值,最好用相位与频率修正模式代替相位修正模式。若TOP保持不变,那么这两种工作模式实际没有区别


计算公式:fPWM=fclk_IO/(2*N*TOP)


5 相位与频率修正PWM模式 WGM1=8,9


双斜波计数,用于输出高精度的、相位与频率都准确的PWM波形


都有TOV1溢出中断,但发生在BOOTOM时


比较匹配后可以产生OCF1x比较匹配中断.


WGM1=8时,最大值由ICF1设定, TOP时产生ICF1输入捕捉中断 (单缓冲)


WGM1=9时,最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断(双缓冲,但OC1A将没有PWM能力,最多只能输出方波)


相频修正修正PWM 模式与相位修正PWM 模式的主要区别在于OCR1x 寄存器的更新时间


改变TOP值时必须保证新的TOP值不小于所有比较寄存器的数值


可以输出0%~100%占空比的PWM信号


使用固定TOP 值时最好使用ICR1 寄存器定义TOP。这样OCR1A 就可以用于在OC1A输出PWM 波。


但是,如果PWM 基频不断变化(通过改变TOP值), OCR1A的双缓冲特性使其更适合于这个应用。


计算公式:fPWM=fclk_IO/(2*N*TOP)


T/C 的时钟源


T/C 的时钟源可以有多种选择,由CS12:0控制,分别用于高速(低分频)/长时间(高分频)/外部计数场合


一个16位定时器,在8MHz系统时钟驱动下,可以实现uS级的高速定时和长达8秒的超长定时,这可是标准51的弱点


CS12 CS11 CS10 说明


0 0 0 无时钟源 (T/C 停止)


0 0 1 clkIO/1 ( 无预分频)


0 1 0 clkIO/8 ( 来自预分频器)


0 1 1 clkIO/64 ( 来自预分频器)


1 0 0 clkIO/256 ( 来自预分频器)


1 0 1 clkIO/1024 ( 来自预分频器)


1 1 0 外部T1 引脚,下降沿驱动


1 1 1 外部T1 引脚,上升沿驱动


分频器复位


在高预分频应用时,通过复位预分频器来同步T/C 与程序运行,可以减少误差。


但是必须注意另一个T/C是否也在使用这一预分频器,因为预分频器复位将会影响所有与其连接的T/C。


外部时钟源


由于使用了引脚同步逻辑,建议外部时钟的最高频率不要大于fclk_IO/2.5。


外部时钟源不送入预分频器


选择使用外部时钟源后,即使T1引脚被定义为输出,其T1引脚上的逻辑信号电平变化仍然会驱动T/C1 计数,这个特性允许用户通过软件来控制计数。


输入捕捉单元


T/C 的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。


外部事件发生的触发信号由引脚ICP1 输入,也可通过模拟比较器单元来实现。


时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。


输入捕捉单元可以工作在多种工作模式下


(使用ICR1定义TOP的(WGM1=12,14,10,8)波形产生模式时,ICP1与输入捕捉功能脱开,从而输入捕捉功能被禁用。)


在任何输入捕捉工作模式下都不推荐在操作过程中改变TOP值


当引脚ICP1 上的逻辑电平( 事件) 发生了变化,或模拟比较器输出ACO 电平发生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉即被激发:


16位的TCNT1 数据被拷贝到输入捕捉寄存器ICR1,同时输入捕捉标志位ICF1 置位。


如果此时ICIE1 = 1,输入捕捉标志将产生输入捕捉中断。


中断执行时ICF1 自动清零,或者也可通过软件在其对应的I/O 位置写入逻辑1” 清零。


注意,改变触发源有可能造成一次输入捕捉。因此在改变触发源后必须对输入捕捉标志执行一次清零操作以避免出现错误的结果


除去使用ICR1定义TOP的波形产生模式外, T/C中的噪声抑制器与边沿检测器总是使能的。


(其实就是永远使能??)


使能噪声抑制器后,在边沿检测器前会加入额外的逻辑电路并引入4个系统时钟周期的延迟.


噪声抑制器使用的是系统时钟,因而不受预分频器的影响


使用输入捕捉中断时,中断程序应尽可能早的读取ICR1 寄存器


如果处理器在下一次事件出现之前没有读取ICR1 的数据, ICR1 就会被新值覆盖,从而无法得到正确的捕捉结果。


测量外部信号的占空比时要求每次捕捉后都要改变触发沿。


因此读取ICR1 后必须尽快改变敏感的信号边沿。改变边沿后,ICF1 必须由软件清零( 在对应的I/O 位置写1”)。


若仅需测量频率,且使用了中断发生,则不需对ICF1 进行软件清零。


输出比较单元


16位比较器持续比较TCNT1与OCR1x的内容,一旦发现它们相等,比较器立即产生一个匹配信号。


然后OCF1x 在下一个定时器时钟置位。


如果此时OCIE1x = 1, OCF1x 置位将引发输出比较中断。


(就是说输出比较可以工作在所有工作模式下,但PWM模式下更好用,功能更强)


输出比较单元A(OCR1A) 的一个特质是定义T/C 的TOP 值( 即计数器的分辨率)。


TOP 值还用来定义通过波形发生器产生的波形的周期。


由于在任意模式下写TCNT1 都将在下一个定时器时钟周期里阻止比较匹配,在使用输出比较时改变TCNT1就会有风险,不管T/C是否在运行


这个特性可以用来将OCR1x初始化为与TCNT1 相同的数值而不触发中断。


强制输出比较(FOC)


工作于非PWM 模式时,可以通过对强制输出比较位FOC1x 写”1” 的方式来产生比较匹配。


强制比较匹配不会置位 OCF1x 标志,也不会重载/ 清零定时器,


但是OC1x 引脚将被更新,好象真的发生了比较匹配一样(COMx1:0 决定OC1x 是置位、清零,还是交替变化)。


比较匹配输出单元


比较匹配模式控制位COM1x1:0 具有双重功能。


1 波形发生器利用COM1x1:0 来确定下一次比较匹配发生时的输出比较OC1x 状态;


2 COM1x1:0 还控制OC1x 引脚输出的来源。


只要COM1x1:0 不全为零,波形发生器的输出比较功能就会重载OC1x 的通用I/O 口功能。


但是OC1x 引脚的方向仍旧受控于数据方向寄存器 (DDR)。


从OC1x 引脚输出有效信号之前必须通过数据方向寄存器的DDR_OC1x 将此引脚设置为输出。


波形发生器利用COM1x1:0 的方法在普通模式、CTC 模式和PWM 模式下有所区别。


对于所有的模式,设置COM1x1:0=0 表明比较匹配发生时波形发生器不会操作OC1x寄存器


访问16位寄存器


写16 位寄存器时,应先写入该寄存器的高位字节.


usigned int k;


k=0x1234;


TCNT1H=(unsigned char)(k>>8);


TCNT1L=(unsigned char) k;


而读16 位寄存器时应先读取该寄存器的低位字节.


usigned int k;


k=TCNT1L;


k+=(unsigned int)(TCNT1H<<8);


使用“C” 语言时,编译器会自动处理16位操作.


usigned int k;


k=0x1234;


TCNT=k;


k=TCNT1;


因为这段时间要写 关于AVR定时器和PWM的范例,故简单总结了一下。


补充了计算公式。

关键字:AVR  单片机  定时器 引用地址:简述AVR单片机定时器

上一篇:ATmega16的熔丝设置详解
下一篇:简述AVR单片机中断

推荐阅读最新更新时间:2024-11-17 04:46

步进电机驱动器的关键技术研究
引 言 步进电机是一种将电脉冲信号转换为角位移的执行机构。其主要优点是有较高的定位精度,无位置累积误差;特有的开环运行机制,与闭环控制系统相比降低了系统成本,提高了可靠性,在数控领域得到了广泛的应用。但是,步进电机在低速运行时的振动、噪声大,在步进电机的自然振荡频率附近运行时易产生共振,且输出转矩随着步进电机的转速升高而下降,这些缺点限制了步进电机的应用范围。步进电机的性能在很大程度上取决于所用的驱动器,改善驱动器的性能,可以显著地提高步进电机的性能,因此研制高性能的步进电机驱动器是一项普遍关注的课题。 1 步进电机驱动控制系统概述 通常情况下,步进电机驱动系统由3部分构成: ①控制电路。用于产生脉冲,控制电机的速
[单片机]
步进电机驱动器的关键技术研究
单片机实现通用存贮器IC卡的读写
    摘要: 本文对AT24系列存贮器和AT89系列单片机的特征及总线状态作为介绍,并以AT24C01与AT89C2051为例详细描述了通用存贮器IC卡的工作原理及用单片机对其进行读写操作的基本电路连接和软件编程方法。     关键词: E2PROM I2C总线 FLASH ROM IC卡 AT24C01 AT89C2051 1 概述 通用存贮器IC卡是由通用存贮器芯片封装而成的,由于它的结构和功能简单,生产成本低,使用方便,因此在各领域都得到了广泛的应用。目前用于IC卡的通用存贮器芯片多为E2PROM,其常用的协议主要有两线串行连接协议(I2C)和三线串行链接协议,其中比较常用的是ATMEL公司生产的
[应用]
瑞萨电子推出全球首款28nm汽车级MCU
3月27日,瑞萨电子株式会社发布了业界第一款使用28nm工艺的集成闪存微控制器(MCU),并于即日起开始交付样片。据瑞萨介绍,这款 RH850/E2x系列微控制器内置了多达6个400Mhz的处理器核心,成为业界第一款能达到9600MIPS指令处理能力的车用控制片内闪存MCU。该系列MCU还具有多达16MB的内置闪存以及更完善的安保功能和功能安全性。 Renesas autonomy™是瑞萨电子面向智能辅助驾驶和自动驾驶开发推出的开放、创新和可信赖的开发平台。通过该平台,瑞萨电子为汽车行业向下一代环保汽车、网联汽车、自动驾驶汽车的进化提供端对端的解决方案。28nm工艺的车用控制MCU是一款突破性的产品,为云服务互连和环境感
[半导体设计/制造]
恩智浦MCX微控制器增强移动机器人的电机控制能力
移动机器人的卓越性能、平稳运动和可靠运行离不开高效精确的电机控制。机器人的自主性和复杂性不断提高,非常需要能够处理复杂电机控制和其他任务的高级微控制器。 恩智浦新一代MCX微控制器产品组合具有先进的外设,可帮助开发人员优化移动机器人系统中的电机控制。 FlexPWM模块 MCX A和N系列具有通用、高配置的增强型Flex脉宽调制器(eFlexPWM)模块,可实现精确的电机控制,并提供广泛的功能集,满足移动机器人应用的各种需求。除了驱动电机的高级控制外,eFlexPWM模块还可用于构建开关式电源。 eFlexPWM模块的一个主要功能是支持中心对齐、边沿对齐和非对称脉宽调制(PWM)。 中心对齐PWM可保持相位
[机器人]
恩智浦MCX<font color='red'>微控制器</font>增强移动机器人的电机控制能力
单片机和LED灯阵制作的贪吃蛇趣味小游戏
最近几天天气总是在下雨,对于不爱玩手机游戏的我来说过得太无聊了。 想想咋么才能让时间过得快一点呢,这个时候我看到电视里的一个广告类似贪吃蛇的,于是抱着试试看的想法 用单片机和LED灯阵做了一个贪吃蛇的游戏 基本功能都有,玩起来体验还可以,总算可以充分利用时间了。 下面我就把制作过程和文件分享给大家 用一个18650电池供电,用一个单片机进行控制 名称:8X8点阵贪吃蛇 功能: 按右键开始、中间可以选择速度1最慢9最快(飞一般的感觉) 速度2和9,哎呀呀,自己撞死了(可以穿墙,撞到自己的身体死亡) 按中间确定可查看吃到了多少 暂停 废话不多说先上实物图 实物图1 实物图2 焊接实物图1 由于时间比较急线
[单片机]
用<font color='red'>单片机</font>和LED灯阵制作的贪吃蛇趣味小游戏
MCU多元再进化 强化运算及各种介面延伸字号
微控制器(MCU)近年在智慧系统、物联网需求提高,成为电子产业中,再次翻红的产品,怎么说翻红。过去的MCU功能较简单,已大量应用在传统电子产品如冰箱、电视等家电到自动化产品等,如今在网路影响及数位资讯云端化,传统应用方向不再单一,还多了分享,因此MCU随之进化,强化运算及各种介面的延伸,打造出符合市场需求的产品,让MCU需求不断提高。 意法半导体大中华暨南亚区产品行销经理杨正廉说,MCU市场受M2M(MachinetoMachine)加持,近年出货表现确实不俗,但对整体MCU市场,则是一场厂商生存战的开始,主因推出低阶MCU的业者,将面临技术提升及价格竞争,反观谁拥有技术及整体多元的产品支援才符合市场期待。以意法半导体为
[单片机]
使用ARM Cortex-M MCU拓展单片机教学
ARM在90年代末进入中国,借助其在全球移动终端和嵌入式系统上的成功,正在深刻地影响着嵌入式系统教学。2004年ARM发布Corex-M3 MCU内核之后,国际上主要的MCU厂商纷纷推出基于M3、M4、M0和M0+的各种MCU。其中M0/M0+瞄准的是替代传统的以8051为代表的8位MCU市场,这些给单片机(MCU)和嵌入式教育带来新的机遇和挑战。 近日,由嵌入式系统联谊会主办的第13次主题研讨会如期举行。来自清华大学、同济大学、太原理工大学等知名高校的专家学者与ARM、意法半导体、飞思卡尔等产业界人士齐聚一堂,就“使用ARM Cortex-M MCU拓展传统单片机教学”这一话题发表了精彩演讲,并展开了热烈的讨论。 清华大
[单片机]
C51单片机串口通信之上位机交互
概述:上位机(PC机)向MCU发送指令,MCU串口接收指令并根据列表发送响应。 全局变量声明 #include E51Pro.h BYTE ComBuf ;//串口通讯数据缓存,发送和接收都使用 UINT nAddress;//ROM中地址计数 UINT nTimeOut;//超时计数 ProWork pw;//编程器一般操作 1 定时器延时 1.1 微秒级 void Delay_us(BYTE nUs)//微秒级延时 255us { TH0=0; TL0=0; TR0=1; while(TL0 nUs); //利用T0做定时计数器,循环采样,直到达到定时值 TR
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved