ebfAVR单片机定时计数器的结构与应用.ppt_第1页
ebfAVR单片机定时计数器的结构与应用.ppt_第2页
ebfAVR单片机定时计数器的结构与应用.ppt_第3页
ebfAVR单片机定时计数器的结构与应用.ppt_第4页
ebfAVR单片机定时计数器的结构与应用.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定时计数器的结构与应用,定时计数器(Timer/Counter)常用于计数、延时、测量周期、频率、脉宽、提供定时脉冲信号等。 在实际应用中,对于转速,位移、速度、流量等物理量的测量,通常也是由传感器转换成脉冲电信号,通过使用定时计数器来测量其周期或频率,再经过计算处理获得。 AVR的定时计数器接口功能: 通过定时计数器与比较匹配寄存器相互配合,生成占空比可变的方波信号,即脉冲宽度调制输出PWM信号,可用于D/A、马达无级调速控制、变频控制等。 ATmega16一共配置了2个8位和1个16位,共3个定时计数器,它们是8位的定时计数器T/C0、T/C2和16位的定时计数器T/C1。,定时计数器的结构,定时计数器最基本的功能就是对脉冲信号“自动”进行计数。“自动”,指计数的过程是由硬件完成的,不需要MCU的干预。但MCU可以通过指令设置定时计数器的工作方式,以及根据定时计数器的计数值或工作状态做必要的处理和响应。,使用定时计数器时,必须注意以下的基本要素:,1.定时计数器的长度。 定时计数器的长度是指计数单元的位长度,一般为8位(一个字节)或16位(2个字节)。 2.脉冲信号源。 脉冲信号源是指输入到定时计数器的计数脉冲信号。通常用于定时计数器计数的脉冲信号可以由外部输入引脚提供,也可以由单片机内部提供。,3. 计数器类型 计数器类型是指计数器的计数运行方式,可分为加一(减一)计数器,单程计数或双向计数等。 4. 计数器的上下限 计数器的上下限指计数单元的最小值和最大值。一般情况下,计数器的下限值为零,上限值为计数单元的最大计数值,即255(8位)或65535(16位)。需要注意的是,当计数器工作在不同模式下时,计数器的上限值并不都是计数单元的最大计数值255或65535,它将取决于用户的配置和设定。 5. 计数器的事件 计数器的事件指计数器处于某种状态时的输出信号,该信号通常可以向MCU申请中断。如当计数器计数到达计数上限值255时,产生“溢出”信号,向MCU申请中断。,两个8位的定时计数器:T/C0、T/C2主要特点是: 1. 单通道计数器。 2. 比较匹配时清零计数器(自动重装特性,Auto Reload)。 3. 可产生无输出抖动(glitch-free)的,相位可调的脉宽调制(PWM)信号输出。 4. 频率发生器。 5. 外部事件计数器(仅T/C0)。 6. 带10位的时钟预分频器。 7. 溢出和比较匹配中断源(TOV0、OCF0和TOV2、OCF2)。 允许使用外部引脚的32kHz手表晶振作为独立的计数时钟源(仅T/C2) T/C0、T/C2的主要结构和大部分的功能是相同或类似的,1. T/C0的组成结构,图中给出了MCU可以操作的寄存器以及相关的标志位。,在T/C0中,有 1. 两个8位的寄存器; 2. 计数寄存器TCNT0 3. 输出比较寄存器OCR0。 4. T/C0的控制寄存器TCCR0 5. 中断标志寄存器TIFR 6. 定时器中断屏蔽寄存器TIMSK。,T/C0的计数器事件输出信号有两个,1.计数器计数溢出TOV0 2.比较匹配相等OCF0。,这两个事件的输出信号都可以申请中断,中断请求信号TOV0、OCF0可以在定时器中断标志寄存器TIFR中找到,同时在定时器中断屏蔽寄存器TIMSK中,可以找到与TOV0、OCF0对应的两个相互独立的中断屏蔽控制位TOIE0、OCIE0。,(1)T/C0的时钟源,来自外部引脚T0的信号提供, 来自芯片的内部。,T/C0计数时钟源的选择,T/C0的时钟源的选择由T/C0的控制寄存器TCCR0中的3个标志位CS02:0确定,共有8种选择。 无时钟源(停止计数),外部引脚T0的上升沿或下降沿,以及内部系统时钟经过一个10位预定比例分频器分频的5种频率的时钟信号(1/1、1/8、1/64、1/256、1/1024)。, 使用系统内部时钟源,当定时计数器使用系统内部时钟作为计数源时,通常作为定时器和波形发生器使用。 AVR在定时计数器和内部系统时钟之间增加了一个预定比例分频器,分频器对系统时钟信号进行不同比例的分频,分频后的时钟信号提供定时计数器使用。利用预定比例分频器,定时计数器可以从内部系统时钟获得几种不同频率的计数脉冲信号。,T/C0的时钟源与10位预定比例分频器, 使用外部时钟源,当定时计数器使用外部时钟作为计数源时,通常作为计数器使用,用于记录外部脉冲的个数。,外部引脚T0(PB0)上的脉冲信号可以作为C/T0的计数时钟源。 PB0引脚内部有一个同步采样电路(Synchronization),它在每个系统时钟周期都对T0引脚上的电平进行同步采样,然后将同步采样信号送到边沿检测器(Edge Detector)中。边沿检测电路对同步采样的输出信号进行边沿检测,当检测到一个正跳变(CS02:0=7)或负跳变(CS02:0=8)时产生一个计数脉冲CLKT0。,(2)T/C0的计数单元,T/C0的计数单元是一个可编程的8位双向计数器,逻辑功能图,计数(count) TCNT0加1或减1。 方向(direction) 加或减的控制。 清除(clear) 清零TCNT0。 计数时钟(clkT0) C/T0时钟源 顶部值(TOP) 表示TCNT0计数值到达上边界。 底部值(BOTTOM) 表示TCNT0计数值到达下边界(零)。,T/C0根据计数器的工作模式,在每一个clkT0时钟到来时,计数器进行加1、减1或清零操作。clkT0的来源由标志位CS02:0设定。当CS02:0=0时,计数器停止计数(无计数时钟源)。,T/C0的计数值保存在8位的寄存器TCNT0中,MCU可以在任何时间访问(读/写)TCNT0。MCU写入TCNT0的值将立即覆盖其中原有的内容,同时也会影响到计数器的运行。,计数器的计数序列取决于寄存器TCCR0中标志位WGM01:0的设置。WGM01:0的设置直接影响到计数器的计数方式和OC0的输出,同时也影响和涉及T/C0的溢出标志位TOV0的置位。标志位TOV0可以用于产生中断申请,在T/C0运行期间,比较匹配单元将寄存器TCNT0的计数值同寄存器OCR0的内容进行比较(硬件进行自动比较处理)。两者相等,在下一个计数时钟脉冲到达时置位OCF0标志位。标志位OCF0也可以用于产生中断申请。根据WGM01:0和COM01:0的不同设置,可控制比较匹配单元产生和输出不同类型的脉冲波形。,(3)比较匹配单元,寄存器OCR0实际上配置有一个辅助缓存器。当T/C0工作在非PWM模式下时,该辅助缓存器处于被禁止使用状态,此时MCU直接访问和操作寄存器OCR0。当T/C0工作在PWM模式时,该辅助缓存器投入使用,这时MCU对OCR0的访问操作,实际上是对OCR0的辅助缓存器操作。一旦计数器TCNT0的计数值达到设定的最大值(TOP)或最小值(BOTTOM)时,辅助缓存器中的内容将同步更新比较寄存器OCR0的值。这将有效防止产生奇边非对称的PWM脉冲信号,使输出的PWM波中没有杂散脉冲。,强制输出比较,在非PWM波形发生模式下,写1到强制输出比较位(FOC0)时,将强制比较器产生一个比较匹配输出信号。强制比较输出信号不会置OCF0标志位或重新装载/清零计数器,但是会像真的发生了比较匹配事件一样更新OC0输出引脚输出。,通过写TCNT0寄存器屏蔽比较匹配事件,任何MCU对TCNT0寄存器的写操作都会屏蔽在下一个定时器时钟周期中的发生的比较匹配事件,即使在定时器暂停时。这一特性使OCR0可以被初始化为与TCNT0相同的值,而不会在定时计数器被使能时触发中断。,使用输出比较单元,由于在任何工作模式下,写TCNT0寄存器都会使得输出比较匹配事件被屏蔽一个定时器时钟周期,因此可能会影响比较匹配输出的正确性。例如,写入一个与OCR0相同的值到TCNT0时,将丢失一次比较匹配事件,从而引起发生不正确的波形。同样,当定时器是向下计数时,不要将下边界的值写入TCNT0。,(4)比较匹配输出单元,标志位COM01:0有两个作用:定义OC0的输出状态,以及控制外部引脚OC0是否输出OC0寄存器的值。 当标志位COM01:0中任何一位为“1”时,波形发生器的输出OC0取代引脚PB3原来的I/O功能,但引脚的方向寄存器DDRB3仍然控制OC0引脚的输入/输出方向。如果要在外部引脚PB3上输出OC0的逻辑电平,应设定DDRB3定义该引脚为输出脚。采用这种结构,用户可以先初始化OC0的状态,然后再允许其由引脚PB3输出。,(5)比较输出模式和波形发生器,T/C0有四种工作模式,根据COM01:0的不同设定,波形发生器将产生各种不同的脉冲波形,如PWM波形的产生和输出。但只要COM01:0=0,波形发生器对OC0寄存器没有任何作用。,2与8位T/C0相关的寄存器,(1)T/C0计数寄存器TCNT0,TCNT0是T/C0的计数值寄存器,该寄存器可以直接被MCU读写访问。写TCNT0寄存器将在下一个定时器时钟周期中阻塞比较匹配。因此,在计数器运行期间修改TCNT0的内容,有可能将丢失一次TCNT0与OCR0的匹配比较操作。,(2)输出比较寄存器OCR0,8位寄存器OCR0中的数据用于同TCNT0寄存器中的计数值进行匹配比较。 在T/C0运行期间,比较匹配单元一直将寄存器TCNT0的计数值同寄存器OCR0的内容进行比较。一旦TCNT0的计数值与OCR0的数据匹配相等,将产生一个输出比较匹配相等的中断申请,或改变OC2的输出逻辑电平。,(3)定时计数器中断屏蔽寄存器TIMSK,位7(位1) OCIE2(OCIE0):T/C2(T/C0)输出比较匹配中断允许标志位 当OCIE2(OCIE0)被设为“1”,且状态寄存器中的I位被设为“1”时,将使能T/C2(T/C0)的输出比较匹配中断。若在T/C2(T/C0)上发生输出比较匹配,即OCF2=1(OCF0=1)时,则执行T/C2(T/C0)输出比较匹配中断服务程序。 位6(位0) TOIE2(TOIE0):T/C2(T/C0)溢出中断允许标志位 当TOIE2(TOIE0)被设为“1”,且状态寄存器中的I位被设为“1”时,将使能T/C2(T/C0)溢出中断。若在T/C2(T/C0)上发生溢出,即TOV2=1(TOV0=1)时,则执行T/C2(T/C0)溢出中断服务程序。,(4)定时计数器中断标志寄存器TIFR,位7(位1) OCF2(OCF0):T/C2(T/C0)比较匹配输出的中断标志位 当T/C2(T/C0)输出比较匹配成功,即TCNT2=OCR2(TCNT0=OCR0)时,OCF2(OCF0)位被设为“1”。当转入T/C2(T/C0)输出比较匹配中断向量执行中断处理程序时,OCF2(OCF0)由硬件自动清零。写入一个逻辑“1”到OCF2(OCF0)标志位将清除该标志位。当寄存器SREG中的I位、OCIE2(OCIE0)以及OCF2(OCF0)均为“1”时,T/C2(T/C0)的输出比较匹配中断被执行。 位6(位0) TOV2(TOV0):T/C2(T/C0)溢出中断标志位 当T/C2(T/C0)产生溢出时,TOV2(TOV0)位被设为“1”。当转入T/C2(T/C0)溢出中断向量执行中断处理程序时,TOV2(TOV0)由硬件自动清零。写入一个逻辑“1”到TOV2(TOV0)标志位将清除该标志位。当寄存器SREG中的I位、TOIE2(TOIE0)以及TOV2(TOV0)均为“1”时,T/C2(T/C0)的溢出中断被执行。在PWM模式中,当T/C2(T/C0)计数器的值为0x00并改变计数方向时,TOV2(TOV0)自动被置为“1”。,(5)T/C0控制寄存器TCCR0,8位寄存器TCCR0是T/C0的控制寄存器,它用于选择计数器的计数源,工作模式和比较输出的方式等。 位7FOC0:强制输出比较 FOC0位只在T/C0被设置为非PWM模式下工作时才有效,在PWM模式下写TCCR0寄存器时,该位必须被写零。当将一个逻辑“1”写到FOC0位时,会强加在波形发生器上一个比较匹配成功信号,使波形发生器依据COM01:0位的设置而改变OC0输出状态。注意:FOC0的作用仅如同一个选通脉冲,而OC0的输出还是取决于COM01:0位的设置。 一个FOC0选通脉冲不会产生任何的中断申请,也不影响计数器TCNT0和寄存器OCR0的值。一旦一个真正的比较匹配发生,OC0的输出将根据COM01:0位的设置而更新。,位3,6WGM01:0:波形发生模式 这两个标志位控制T/C0的计数和工作方式,计数器计数的上限值,以及确定波形发生器的工作模式(见表8.1)。T/C0支持的工作模式有:普通模式,比较匹配时定时器清零(CTC)模式,以及两种脉宽调制(PWM)模式。,位5,4COM01:0:比较匹配输出方式 这两个位用于控制比较输出引脚OC0的输出方式。如果COM01:0中的任何一位或两位被置“1”,OC0的输出将覆盖PB3引脚的通用I/O端口功能,但此时PB3引脚的数据方向寄存器DDRB3位必须置为输出方式。当引脚PB3作为OC0输出引脚时,其输出方式取决于COM01:0和WGM01:0的设定。 表8.2给出了在WGM01:0的设置为普通模式和CTC模式(非PWM)时,COM01:0位的功能定义。,表8.3给出了在WGM01:0的设置为快速PWM模式时,COM01:0位的功能定义。,WGM01:0设置为相位可调的PWM模式时,COM01:0位的功能定义。,位2,0CS02:0:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论