您的位置 首页 制造

AVR单片机(学习ing)-ATMEGA16的守时/计数器

四、ATMEGA16的定时计数器四—(01)、四位显示秒表试验首先怀念一下咱们的体育课,再体育课或者田径比赛的时候,老师会经常使用秒表来记

四、ATMEGA16的守时/计数器

四—(01)、四位显现秒表试验

首要思念一下我们的体育课,再体育课或许田径比赛的时分,教师会常常运用秒表来记载同学们的成果。在此,来进行一个秒表的规划。(说实话,这个秒表真的太贵了,不过仅仅试验,纯属文娱)

运用INT0键进行计时的开端/中止,运用S1键作为计时值得清楚,而且选用6位数码管的右四位进行显现。

守时器T0被用作扫描4位数码管(选用溢出中止,每1ms中止一次),而守时器T1则用来计时(我们用的秒表用来显现四位,两位小数,也便是每计时10ms中止溢出一次)。

1、预分频器和多路挑选器

ATMEGA16有两个8位守时/计数器(T/C0、T/C2)和一个16位守时/计数器(T/C1)。

ATMEGA16的守时器/计数器时钟是可挑选的。其时钟部分包含预分频器和一个多路挑选器。预分频器课被认为是一个有多级输出的分频器。ATMEGA16用一个10位的计数器把输入的时钟分为4种可挑选的分频输出。多路挑选器可设置运用其间一个分频输出,或许不适用分频输出和运用外部引脚输入时钟。

看图看本相:(其间只要0和1的,2的同理啊~如同那个0和1共用一个,详细我给忘记了,自己看datasheet~)

2、8 位守时器/ 计时器0

T/C0 是一个通用的单通道8 位守时器/ 计数器模块。其首要特色如下:
• 单通道计数器
• 比较匹配产生时铲除守时器( 主动加载)
• 无搅扰脉冲,相位正确的PWM
• 频率产生器
• 外部事情计数器
• 10 位的时钟预分频器
• 溢出和比较匹配中止源 (TOV0 和 OCF0)

Figure 27为8位守时器/计数器的简化框图(说实话,我也看不懂啊~~

寄存器:

T/C(TCNT0)和输出比较寄存器(OCR0)为8位寄存器。中止请求(图中简写为Int.Req. ) 信
号在守时器中止标志寄存器TIFR 都有反映。 一切中止都能够经过守时器中止屏蔽寄存器
TIMSK 独自进行屏蔽。图中没有给出TIFR 和TIMSK。
T/C能够经过预分频器由内部时钟源驱动,或许是经过T0 引脚的外部时钟源来驱动。时钟
挑选逻辑模块操控运用哪一个时钟源与什么边缘来添加( 或下降)T/C 的数值。假如没有
挑选时钟源T/C 就不作业。时钟挑选模块的输出界说为守时器时钟clkT0。
双缓冲的输出比较寄存器OCR0 一向与T/C 的数值进行比较。比较的成果可用来产生
PWM波,或在输出比较引脚OC0上产生改变频率的输出。比较匹配事情还将置位比较标志OCF0。此标志能够用来产生输出比较中止请求。

界说:

本文的许多寄存器及其各个位以通用的格局表明。小写的“n” 替代了T/C 的序号,在此即
为0。小写的“x” 替代了输出比较单元通道,在此即为通道A。可是在写程序时要运用精
确的格局,例如运用TCNT0 来拜访T/C0 计数器值,等等。

T/C 时钟源:

T/C 能够由内部同步时钟或外部异步时钟驱动。时钟源是由时钟挑选逻辑决议的,而时钟
挑选逻辑是由坐落T/C 操控寄存器TCCR0 的时钟挑选位CS02:0 操控的。

计数器单元:

8位T/C的首要部分为可编程的双向计数单元。 Figure 28 即为计数器和周边电路的框图。

依据不同的作业形式,计数器针对每一个clkT0 完成清零、加一或减一操作。clkT0 能够由
内部时钟源或外部时钟源产生,详细由时钟挑选位CS02:0 确认。没有挑选时钟源时
(CS02:0 = 0) 守时器即中止。可是不论有没有clkT0,CPU 都能够拜访TCNT0。CPU 写操
作比计数器其他操作( 如清零、加减操作) 的优先级高。
计数序列由T/C 操控寄存器 (TCCR0) 的WGM01 和WGM00 决议。计数器计数行为与输
出比较OC0 的波形有严密的联系。有关计数序列和波形产生的详细信息请参阅P72“ 作业
形式” 。
T/C溢出中止标志TOV0依据WGM01:0 设定的作业形式来设置。TOV0能够用于产生CPU
中止。
输出比较单元:
8位比较器继续对TCNT0和输出比较寄存器OCR0进行比较。一旦TCNT0等于OCR0,比
较器就给出匹配信号。在匹配产生的下一个守时器时钟周期输出比较标志OCF0 置位。若
此刻OCIE0 = 1 且SREG 的大局中止标志I 置位,CPU 将产生输出比较中止。履行中止
服务程序时OCF0 主动清零,或许经过软件写”1” 的方法来清零。依据由WGM21:0 和COM01:0 设定的不同的作业形式,波形产生器运用匹配信号产生不同的波形。一起,波
形产生器还运用max 和bottom 信号来处理极值条件下的特殊情况
Figure 29 为输出比较单元的方框图。

运用PWM 形式时OCR0 寄存器为双缓冲寄存器;而在正常作业形式和匹配时清零形式
双缓冲功用是制止的。双缓冲能够将更新OCR0 寄存器与top 或bottom 时间同步起来,
然后避免产生不对称的PWM 脉冲,消除了搅扰脉冲。
拜访OCR0 寄存器看起来很杂乱,其实不然。使能双缓冲功用时,CPU 拜访的是OCR0
缓冲寄存器;制止双缓冲功用时CPU 拜访的则是OCR0 自身。(好了,你笨上就这么多吧,我仍是看书上的排版比较好啊~~datasheet真的好大啊~“)

3、8位守时/计数器0的寄存器
1)T/C 操控寄存器- TCCR0

• Bit 7 – FOC0: 强制输出比较
FOC0仅在WGM00指明非PWM形式时才有用。可是,为了确保与未来器材的兼容性,在
运用PWM 时,写TCCR0 要对其清零。对其写1 后,波形产生器将当即进行比较操作。
比较匹配输出引脚 OC0 将依照COM01:0 的设置输出相应的电平。要留意FOC0 相似一
个锁存信号,真正对强制输出比较起作用的是COM01:0 的设置。
FOC0不会引发任何中止,也不会在运用OCR0作为TOP的CTC形式下对守时器进行清零
的操作。
读FOC0 的返回值永远为0。

• Bit 6, 3 – WGM01:0: 波形产生形式
这几位操控计数器的计数序列,计数器的最大值TOP,以及产生何种波形。T/C 支撑的
形式有:一般形式,比较匹配产生时铲除计数器形式(CTC),以及两种PWM 形式,详见
Table 38 与P72“ 作业形式” 。

• Bit 5:4 – COM01:0: 比较匹配输出形式
这些位决议了比较匹配产生时输出引脚OC0 的电平。假如COM01:0 中的一位或全部都
置位, OC0 以比较匹配输出的方法进行作业。一起其方向操控位要设置为1 以使能输出
驱动器。
当OC0 连接到物理引脚上时, COM01:0 的功用依赖于WGM01:0 的设置。Table 39 给
出了当WGM01:0 设置为一般形式或CTC 形式时COM01:0 的功用。

• Bit 2:0 – CS02:0: 时钟挑选
用于挑选T/C 的时钟源。

假如T/C0 运用外部时钟,即便T0 被装备为输出,其上的电平改变仍然会驱动记数器。
运用这一特性可经过软件操控记数(这儿应该留意一下下~~~)。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/257045.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部