《maga16 定时器学习笔记.docx》由会员分享,可在线阅读,更多相关《maga16 定时器学习笔记.docx(5页珍藏版)》请在第一文库网上搜索。
1、ATmega16单片机仃3个定时/厚器:ACO、T/C1和T/C2,其MT/C0和T/C2启均:的定时/计数讴一而T/C1是16位的定时/计数潜,这里以T/C1为例讲解。 :普通模式; CTC模式; :快速PWM模式; :相位修正PWM模式; 相位频率修正PWM模式; 输入捕获模式;普通模式时最简单的I:作模式,和51单片机的定时计数器类似,根据设定的时钟频率,每过一个时钊J计数寄存器数值加1。J6位计数器卜CrW),。累加,当计数到C)XFFTF之后,0丁计数便溢出,TCNTI简单WJ最小值OXC1Oc)O茎新开始I卜数。V普通模式用到的寄存器1、T/C1控制寄存器TCCRIB耳初始值7II
2、CNC1R/W,:位2:0-CS12:0:T/C1时钟选择CS12CS11CS10说明Q_0一无时钟源4/c停001c1k01(无预分频)010CIkUo/8(来自预分频器)011C1kQZ64(来自预分频器)100CIIO/256(来自预分频器)101C11O/1024(来自预分频器)110外部T1引脚,下降沿驱动111外部T1引脚,上升沿驱动2、计数存储器TCNT1H和TCNT11开47654321I-TCNTI”8TCNT170普通模式的使用方法TCNT1H已根据需要选择时钟源(寄存器TCeRIB)。3、BitTzcrpitji7存器TIMSK2、根据定时时间利时钟源确定定时器的初值76
3、543I210VIOCIE2|TOg|TCE1OaEIAOoE1B八T。g)。屣。T6E。|(奇存然TCNT1H和TCNT11)O读/号RWrJwRWrJwR?W1RWRWRWW。.:.3、设置中断使能位。位gTO1E1:T心1溢出上陆使能位:。,1iz2r1JJ,正态看4璃币的I位然贵1时,T/C1的温HI中断使能4、选择中断号,编勺卜断服务程不,注意:在RZW-IEFR的TOVIN位,CPUW1始执PC1溢;I1中断服务函数里面需要重新设置定时器初修波形产生模式位描述y&TC模式1Iy/严于输出1/2占彘诙方波信号均于产生准确的连续定时信号模式WGM13WGM12(CTC1)WGM11(P
4、WM11)WGM10(PWM10)定rt外敷工作模式甘敷上Hf1TOPOCR1XK新时刻TOV1位时奥00000普通模式OxFFFF立即更新MAX100018位相位修正PWM0xFFTOPBOTTOM200109位相位修正PVVMOxOIFFTOPBOTTOM3001110位相位修正PWMOxO3FFTOPBOTTOM40100CTCR1A立即更新MAX501018位快速PWMO(OoFFTOPTOP601109位快速PWMOxOIFFTOPTOP7011110位快速PwM03FFTOPTOP81000相位与5率修正PVvMICR1BOTTOMBOTTOM91001相位与频率修正PVMOCR1
5、ABOTTOMBOTTOM101010相位修正PWMICR1TOPBOTTOM111011相位修正PWMR1ATOPBOTTOM121100CTCICR1立即更新MAX131101保盲-141110快速PWMICR1TOPTOP151111快速PWMR1ATOPTOP1、:在CTC模式(WGM13:0=4或者12)F,OCRIA或ICR1寄。器川调”计数器的分辨率。、尤数值TCNI达B1I到预先设定的OCR1A(WGM13:O=4)或者ICR1(WGM13:0=12)时,TCNT1被动清零。OCR1A或读/写ICRCI定义了计数器的最大计数位。初始值CTC模式用到的寄存器T/C1控制寄存器AT
6、CCR1A76-5432ICOMIA1ICOM1AOCOMIB1COM1BofOC1AFOCIBW3M11WGM1OTCCR1A*bee0000:和JOCF1A或ICFI标忐可以在计数器达到预设值时产0生一断,在中断服务程序里更新预设值2、为了在CTC模式卜得到输出波形,可以预置OC1A川峭在每次比较匹配发生时改变逻辑电平,这UJ以通过接/写设置COM1A1:0口来完成。初始值T/C1控制寄存器BTCCR1B76543210IICNC1ICES1一IWGM13WGM12CS12CS11CS10TCCR1BRRRRRVR/WRRV0000000012、3、COM1A1/COM1B1COM1AO/
7、COM1BO说明n0篁为端口操作.非OC1A/OCIB功能01比较匹配时OC1AOC1B电平取反10比较匹配时清零OC1AOC1B(输出低电平)11比较匹配时置位OC1AOCIB(输出高电平)Tab1e44.比较输出模式,非PWMCTC模式的使用方法如果输出波形,设置遗II为输出/设置波形发生模式及时钟源(TeCR1B设置输出模式(TCCR1A)o 4.根据需要设置上限值(OCR1A)o。5、频率计算公式:tOCn=fc1kIO(2*N*(1+OCRA)变埴N代衣顶分频闪(1832.64.2561024)。快速PWM模式 K快速PWM模式十分适合于功率调节、冬薪通M川。 :*2、快速PWM模式
8、(WGM3:0=56、7、业如)川来产生高频型波形。计数器羡)x0000计数到设定的最大值,然后M即返M到OXoooO用新开始。 3、快速PWM模式计数器的最大值可固定也、MW位,也位以由ICRC1或OeRIA定义。-T作快速PWM模式时,比较单元可以在zOC1A/OC1B。I脚上输!IIPWM波形。快速PWM模式川到的寄存器1、T/C1控制寄。器ATCCR1ABrt7654321OTCCR1AIC0M1A1COM1AOC0M1B1COM1BOF0C1AF0C1BWGM11WGMW|读/耳RWRWR/WR/WWWRAZVR/W初刷1OOOOOOOOC0M1A1/C0M1B1COM1AO/COM
9、1BO说明OO普通端口操作,非OC1A/0C1B功能O1JWGM13:0=.15:比较匹配时OCIA取反.OC1B不占用物理引脚。WGMI3:0以其它值时为普通端口操作,非OC1A/OC1B功能1O比较匹配时清零OC1AZoC1B.0C1A/0C1B在TOP时位11比较匹配时置位OC1A0C1B.0C1A/0C1B在TOP时清零Tab1e45.比较输出模式,快速PVVM2、T/C1控制寄存器BTCCR1B3、输出比较寄存器IAQCRIABit7654321OICNCNICES1|-|WGM13WGM12|CS12CS11CS10TTCCR1B读/耳RRRRM/R/WK/VVK/VVPvV.初始
10、值C屏幕录像专康未注册COOuOOOOOBd765432101vOCR1A15:8R1AHOCR1A7:0破R1A1读/耳R/WRVR/WR/WR/WR/WR/WR/W初始值OO屏幕录像3家未注册OOOOO.TCCR1A中的位1:0WGMUO和TCCRIB中期立4:3WGM30是波形发生模式。,TCCR1B中位2:0CS12:O:17C1时钟选帑:一4、输出比较寄存器IBQCRIBBit7654321OOCR1B(15:80CR1BHOCRIB7:00CR1B1读/耳R/WRAZVR/WR/WRR/WR/WR/W初始僮OOOOOOOOvoidtimer-init(void)(TeCRIB=OX
11、O4;选择256分频8Mhz内部晶振;TCNT1H=0X85;设置初值;tcnti1=oxee;TIMSK1=Brr(2);中断屏蔽寄存器1SREG=BIT(7);)#pragmainterrupt_hand1ertimer1iSr:9voidtimer1_isr(void)(II11m+;每一秒加一次;if(num=60)num=0;TCNT1H=0X85;设置初值;tcnti1=oxee;CTC模式;DDRD=0X30;/PD5=1.PI)6=1;TCCRIB=OXo9;控制寄存器B没有分频TCCR1A=OX5O;OCR1A=3999;公式计算来的。产生方波。快速PvVM模式的使川方法。1、设置端口输出。 2,设置PWM波形模式,.以及时钟选择(TCCR1A,TCCR1B)。 3,设置PWM波形的频率(OCRIA)o屏幕录像专家未注册 4,设置PWM波形的3空比(OCRIB)。 频率计算公式:fOCn=fc1kJON*(1+T0P)变量N代表预分频闪r(1,8,32,64,256,1024