您现在的位置: 主页 > MCU > 单片机技术应用 > AVR单片机专辑——定时器 -
本文所属标签:
为本文创立个标签吧:

AVR单片机专辑——定时器 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]第二讲:AVR单片机的定时器ATmega128有两个8位定时器0和2,两个16位定时器1和3。下面主要说一下定时器的不同用法。1. T/C0可以外接32768Hz的晶振,实现RTC(实时时钟)。2. T/C2 外部事件计数器(T2)。3. 16位的T/C

第二讲:AVR单片机的定时器

本文引用地址: http://www.21ic.com/app/mcu/201807/778509.htm


ATmega128有两个8位定时器0和2,两个16位定时器1和3。下面主要说一下定时器的不同用法。


1. T/C0可以外接32768Hz的晶振,实现RTC(实时时钟)。


2. T/C2 外部事件计数器(T2)。


3. 16位的T/C可以实现精确的程序定时、波形产生和信号测量。功能非常强。


本文主要以16位的T/C1为例介绍定时器的应用,其它的定时器可以依葫芦画瓢。


1.采用T/C1的溢出中断实现电子钟的设计


定时器工作在普通模式,用数码管显示时间。这里问题是如何得到1s的定时。若晶振采用12M,256分频,则计数初值应设为X,0xFFFF-X=12M/256 ==〉X=0x48E4。


2.用CTC模式产生4kHz的方波(4和12)


CTC模式可以用来输出50%占空比的方波信号,产生准确的连续定时信号。在方波信号产生时,首先需要将I/O中的OCnA/OCnB/OCnC设置为输出,电平取反,无分频,本文选择模式4。使用公式fOCnA=fclk_I/O/2N(1+OCRnA)


来计算出OCRnA的值。在硬件的管脚上可以得到精确的4kHz方波。


3.快速PWM——占空比不定(5、6、7、14和15)


快速PWM和其他PWM不同之处是单边谐波工作方式。可以驱动直流电机,背光等。首先还是需要将I/O中的OCnA/OCnB/OCnC设置为输出,比较匹配时OCnA电平取反,比较匹配时清零OCnB/OCnC,在TOP时置位。64分频,本文选择模式15。使用公式fOCnxPWM=fclk_I/O/N(1+TOP)来计算出TOP的值。


本文将TOP值赋给 OCR1A,OCR1B实现占空比为20%的100Hz的PWM信号。将OCR1A乘以20%得到OCR1B。在硬件管脚OCR1A上得到占空比为50%的50Hz的PWM信号,OCR1B上得到占空比为20%的100Hz的PWM信号。


4.相位修正PWM(1、2、3、10和11)


首先还是需要将I/O中的OCnA/OCnB/OCnC设置为输出,比较匹配时OCnA电平取反,比较匹配时清零OCnB/OCnC,在TOP时置位。64分频,本文选择模式11。使用公式fOCnxPCPWM=fclk_I/O/2NTOP来计算出TOP的值。


本文将TOP值赋给 OCR1A,OCR1B实现占空比为20%的100Hz的PWM信号。将OCR1A乘以20%得到OCR1B。在硬件管脚OCR1A上得到占空比为50%的50Hz的PWM信号,OCR1B上得到占空比为20%的100Hz的PWM信号。


相关寄存器设置请看ATmega128的数据手册。附件是定时器程序以及Proteus仿真图。




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > AVR单片机专辑——定时器 -
 

"AVR单片机专辑——定时器 -"的相关文章

网站地图

围观()