xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 公司简介 2020-02-01 00:07 的文章
当前位置: 阜新市调制模块有限公司 > 公司简介 > 正文

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

  首先怀念一下咱们的体育课,再体育课或者田径比赛的时候,老师会经常使用秒表来记录同学们的成绩。在此,来进行一个秒表的设计。(

  使用INT0键进行计时的开始/停止,使用S1键作为计时值得清楚,并且采用6位数码管的右四位进行显示。

  定时器T0被用作扫描4位数码管(采用溢出中断,每1ms中断一次),而定时器T1则用来计时(咱们用的秒表用来显示四位,两位小数,也就是每计时10ms中断溢出一次)。

  ATMEGA16的定时器/计数器时钟是可选择的。其时钟部分包括预分频器和一个多路选择器。预分频器课被认为是一个有多级输出的分频器。ATMEGA16用一个10位的计数器把输入的时钟分为4种可选择的分频输出。多路选择器可设置使用其中一个分频输出,或者不适用分频输出和使用外部引脚输入时钟。

  T/C0 是一个通用的单通道8 位定时器/ 计数器模块。其主要特点如下:

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

  号在定时器中断标志寄存器TIFR 都有反映。 所有中断都可以通过定时器中断屏蔽寄存器

  T/C可以通过预分频器由内部时钟源驱动,或者是通过T0 引脚的外部时钟源来驱动。时钟

  选择逻辑模块控制使用哪一个时钟源与什么边沿来增加( 或降低)T/C 的数值。如果没有

  选择时钟源T/C 就不工作。时钟选择模块的输出定义为定时器时钟clkT0。

  双缓冲的输出比较寄存器OCR0 一直与T/C 的数值进行比较。比较的结果可用来产生

  PWM波,或在输出比较引脚OC0上产生变化频率的输出。比较匹配事件还将置位比较标志OCF0。此标志可以用来产生输出比较中断请求。

  本文的许多寄存器及其各个位以通用的格式表示。小写的“n” 取代了T/C 的序号,群星模块跳出在此即

  为0。小写的“x” 取代了输出比较单元通道,在此即为通道A。但是在写程序时要使用精

  T/C 可以由内部同步时钟或外部异步时钟驱动。时钟源是由时钟选择逻辑决定的,而时钟

  选择逻辑是由位于T/C 控制寄存器TCCR0 的时钟选择位CS02:0 控制的。

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

  内部时钟源或外部时钟源产生,具体由时钟选择位CS02:0 确定。没有选择时钟源时

  出比较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 设定的不同的工作模式,波形发生器利用匹配信号产生不同的波形。同时,波

  使用PWM 模式时OCR0 寄存器为双缓冲寄存器;而在正常工作模式和匹配时清零模式

  双缓冲功能是禁止的。双缓冲可以将更新OCR0 寄存器与top 或bottom 时刻同步起来,

  访问OCR0 寄存器看起来很复杂,其实不然。使能双缓冲功能时,CPU 访问的是OCR0

  缓冲寄存器;禁止双缓冲功能时CPU 访问的则是OCR0 本身。(好了,你笨上就这么多吧,我还是看书上的排版比较好啊~~datasheet线)T/C 控制寄存器- TCCR0FOC0仅在WGM00指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,在

  使用PWM 时,写TCCR0 要对其清零。对其写1 后,波形发生器将立即进行比较操作。

  比较匹配输出引脚 OC0 将按照COM01:0 的设置输出相应的电平。要注意FOC0 类似一

  FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零

  这几位控制计数器的计数序列,计数器的最大值TOP,以及产生何种波形。T/C 支持的

  模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM 模式,详见Table 38 与P72“ 工作模式” 。

   Bit 5:4 COM01:0: 比较匹配输出模式这些位决定了比较匹配发生时输出引脚OC0 的电平。如果COM01:0 中的一位或全部都

  置位, OC0 以比较匹配输出的方式进行工作。同时其方向控制位要设置为1 以使能输出

  如果T/C0 使用外部时钟,即使T0 被配置为输出,其上的电平变化仍然会驱动记数器。

本文由阜新市调制模块有限公司发布于公司简介,转载请注明出处:AVR单片机(学习ing)-ATMEGA16的定时计数器

关键词: 群星模块跳出