AVR 中定时器的几种工作模式总结

发布于:2024-07-17 编辑:匿名 来源:网络

AVR 有3 个定时计数器,其中定时计数器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 匹配时,根据 COM0[1:0]的值相应地设置或清除 OC0。

与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 中可以存储一个最高值,正是这个最高值可以改变 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变为高电平。

AVR 中定时器的几种工作模式总结

当为低电平时,定时器计数器再次关闭,则此时定时器计数器的计数值为一个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位时,TEMP中的低8位和高8位形成16位数据并写入16位寄存器。

即读取时先读取低8位,再读取高8位;写入时先写入高8位,再写入低8位。

  最后给出定时计数器三种常用工作模式的设置方法(以定时计数器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、根据频率公式计算频率。

AVR 中定时器的几种工作模式总结

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 豪杰宣布完成800万天使轮融资,由博泰集团领投,天生腾基金跟投

    豪杰宣布完成800万天使轮融资,由博泰集团领投,天生腾基金跟投

    据投资界9月14日消息,近日,教育培训信息服务平台豪杰宣布完成获得天盛腾基金领投的10000元天使轮融资。 博泰集团领投,天生腾基金跟投。   资料显示,豪杰成立于今年4月。 是一个为K12教育培训行业提供信息服务的平台。 致力于打造K12阶段的教育培训信息共享机制,构建中

    06-17

  • 道为有道完成近千万元天使轮融资

    道为有道完成近千万元天使轮融资

    据投资界(ID:pedaily)5月31日消息,日前,北京道为有道科技有限公司宣布,基于大健康、光功效爆品品牌制造平台。 完成天使轮融资近千万元。 本轮融资由瑞联新山资本独家投资。 本轮融资主要用于自有品牌发展、团队扩张和市场拓展。 据悉,道为有道成立于2001年,该公司的

    06-18

  • 霄云信息科技获数千万元A+轮融资,元禾重元领投

    霄云信息科技获数千万元A+轮融资,元禾重元领投

    投资界(ID:pedaily)4月21日消息,据36氪报道,分布式存储厂商上海霄云信息技术有限公司霄云信息科技股份有限公司(以下简称“霄云信息科技”)宣布完成数千万元A+轮融资。 本轮融资由元禾重元领投,老股东小苗朗成继续跟投。 本轮融资将主要用于市场拓展和产品研发。 霄云

    06-17

  • EnOcean 成为儒卓力的无线产品合作伙伴

    EnOcean 成为儒卓力的无线产品合作伙伴

    EnOcean 成为儒卓力的无线产品合作伙伴 Rutronik Elektronische Bauelemente GmbH 扩展了其无线产品组合并推出了 EnOcean 产品。 EnOcean 是德国自供电无线解决方案专家,提供基于 EnOcean 无线协议(2016 年发布的开放国际标准)、ZigBee 和低功耗蓝牙的 1 GHz 以下和 2.4 G

    06-06

  • 时隔十二年,中国全球原研新药坎替唑胺片获批上市

    时隔十二年,中国全球原研新药坎替唑胺片获批上市

    创头条获悉,6月2日,上海盟科药业有限公司(以下简称“盟科药业”)发布公告称,中国国家药品监督管理局国家药品监督管理局(NMPA)已批准康替唑胺片(孔夫子?)新药上市申请,该片是治疗耐药细菌感染的全球原创新药,用于治疗复杂性皮肤软组织感染。 坎替唑胺是由中国盟科

    06-18

  • 驭势科技获B轮融资,博世战略投资

    驭势科技获B轮融资,博世战略投资

    据投资界消息,2月26日,驭势科技宣布获得博世B轮战略投资。 同期投资的还包括深创投(深圳创新投资集团)、中金资本、厦门七匹狼节能环保基金和重庆两江服务业基金等VC、PE和地方战略新兴产业基金。 据了解,驭势科技专注于自动驾驶关键技术的研发。 凭借其U-Drive智能驾驶

    06-17

  • 郭树清:房地产领域核心问题仍是较大泡沫

    郭树清:房地产领域核心问题仍是较大泡沫

    银保监会主席郭树清今天在国新办新闻发布会上表示,房地产领域核心问题仍是较大泡沫,金融化和泡沫化倾向比较强。 是金融体系最大的灰犀牛,很多人买房子不是为了住,而是为了投资、投机。 这是非常危险的。 然而,年度房地产贷款增速八年来首次低于所有贷款增速。 这一成绩来

    06-17

  • 欧司朗大陆上海办事处盛大开业

    欧司朗大陆上海办事处盛大开业

    上海,2019 年 11 月 9 日 /美通社/ -- 欧司朗大陆有限公司宣布在中国上海的办事处正式开业。 欧司朗大陆上海办事处的成立加强了其对中国市场的承诺,将使公司能够更好地在中国市场开展尖端汽车照明产品的销售、支持和开发。 欧司朗大陆有限公司首席执行官 Dirk Linzmeier 博

    06-06

  • 首次发布 -优也科技完成近亿元战略融资,腾讯产业生态投资与小喵朗成联合领投

    首次发布 -优也科技完成近亿元战略融资,腾讯产业生态投资与小喵朗成联合领投

    投资界(ID:pedaily)2月26日消息,今日,工业数据操作系统及工业数字智能优也科技,一家全球化转型的全栈产品技术服务商宣布完成近亿元战略融资。 本轮融资由腾讯产业生态投资、小喵朗城联合领投,常熟东南产业基金跟投,云秀资本担任独家投资方。 优也科技创始人、董事长傅

    06-17

  • 2014年谁在颠覆你的移动社交生活?

    2014年谁在颠覆你的移动社交生活?

    易鑫在圣诞节前火速推出3.0版本,陌陌在纽交所敲响钟声,nice再次成功融资,岁末的互联网社交圈似乎比往年更加热闹。 社交平台作为移动终端的新兴端口,发展迅速。 社交产品竞相抢夺头把交椅。 在投资者的助力下,各大新兴照片社交应用再次成为关注焦点。 IN关键词:图片社交

    06-18

  • 信医药B型血友病基因治疗新药(BBM-H901注射液)临床研究成果发表于《柳叶刀-血液病学》

    信医药B型血友病基因治疗新药(BBM-H901注射液)临床研究成果发表于《柳叶刀-血液病学》

    目前,亚洲首个单次静脉给药的B型血友病基因治疗新药(BBM-H901注射液)临床研究结果H注射液)已成功发表在国际权威血液学杂志《柳叶刀-血液病学》(The Lancet Haematology)上。 该临床研究由中国医学科学院血液病医院(中国医学科学院血液学研究所)、创新制药公司信谊医

    06-17

  • 有史以来最小、最快的机器人!哈佛出品的2厘米“四足小强”来了

    有史以来最小、最快的机器人!哈佛出品的2厘米“四足小强”来了

    仿生机器人日益成为机器人领域的研究热点。 2016年,哈佛大学微型机器人实验室的研究人员在“小强”身上建模了一款名为HAMR的四足微型机??器人,看上去有点吓人。 它重约3克,长约5厘米,大小与现实生活中的蟑螂相似。 当四足“小强”移动的镜头放慢 20 倍时就会发生这种情况

    06-18