第8章 定时器_第1页
第8章 定时器_第2页
第8章 定时器_第3页
第8章 定时器_第4页
第8章 定时器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、定时器定时器2 1 S3C2410X PWM定时器定时器 定时器:定时器: 对一固定系统频率进行计数,根据计数数对一固定系统频率进行计数,根据计数数值与系统频率计算得到经过的时间值与系统频率计算得到经过的时间 S3C2410S3C2410有有5 5个个1616位位的定时器的定时器 定时器定时器0 03 3具有具有PWMPWM(脉宽调制)功能(脉宽调制)功能 它们都有一个输出引脚,可以通过定时器来控它们都有一个输出引脚,可以通过定时器来控制引脚周期性的高低变化(即占空比不同的制引脚周期性的高低变化(即占空比不同的PWMPWM波)波) 定时器定时器4 4是内部定时器,是内部定时器,没有输出引脚没有

2、输出引脚,供,供内部使用内部使用结构与工作原理结构与工作原理(1)时钟控制:)时钟控制: 有有2个个8位预分频器和位预分频器和2个个4位分频器位分频器 定时器部件的时钟源为定时器部件的时钟源为PCLK,通过一个,通过一个8位预分位预分频器和一个频器和一个4位分频器降频使用位分频器降频使用定时器定时器0、1分享同一个分享同一个8位的预分频器和分频器位的预分频器和分频器定时器定时器2、3、4 分享另一个预分频器和分频器分享另一个预分频器和分频器分频器有分频器有1/2、1/4、1/8、1/16这这4种分频值种分频值预分频器预分频器8位位分频器分频器1/21/41/81/16TCLK0/1计数器计数器

3、观观察察寄寄存存器器比较寄存器比较寄存器PCLK五五选选一一开开关关初初值值寄寄存存器器控控制制逻逻辑辑TOUT中断中断(2 2)定时器组成)定时器组成 减法计数器、初值寄存器、比较寄存器、观减法计数器、初值寄存器、比较寄存器、观察寄存器、控制逻辑等察寄存器、控制逻辑等5 5部分构成部分构成 1)定时器输入时钟频率)定时器输入时钟频率f f Tclk(即计数时钟频率)(即计数时钟频率) f f Tclk=f f pclk(Prescaler+1) 分频值分频值 式中:式中: Prescaler:预分频值,:预分频值,0-255; 分频值为:分频值为: 1/2、1/4、1/8、1/16 2)PW

4、M输出时钟频率:输出时钟频率: PWM输出时钟频率输出时钟频率= f f TclkTCNTBn 3)PWM输出信号占空比输出信号占空比(即高电平持续时间所占信号周期(即高电平持续时间所占信号周期的比例)的比例) PWM 输出信号占空比输出信号占空比 = TCMPBn TCNTBn 计数时钟和输出计算计数时钟和输出计算 4)定时器工作过程)定时器工作过程装入初值、启动计数,计数结束产生中断请求装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。如下图所示,并且可以重装初值连续计数。如下图所示5)PWM输出输出寄存器寄存器TCMPB:当计数器当计数器TCNT中的值减到与中的值减到与

5、TCMPB的值相同时,的值相同时,TOUT的输出值取反,改变的输出值取反,改变TCMPB的值,便改变了输出方波的值,便改变了输出方波的占空比的占空比TOUT的输出可以设置为反相输出,如下图所示的输出可以设置为反相输出,如下图所示正向输出正向输出反相输出反相输出共有共有6种、种、17个寄存器个寄存器TCNTBn-Timern 计数初值寄存器(计数缓冲寄存器),计数初值寄存器(计数缓冲寄存器),16位位TCMPBn-Timern 比较寄存器(比较缓冲寄存器),比较寄存器(比较缓冲寄存器),16位位TCNTOn-Timern 计数读出寄存器,计数读出寄存器,16位位Register Address

6、R/W Description Reset Value TCFG00 x51000000 R/W 配置寄存器配置寄存器 00 x00000000 TCFG10 x51000004 R/W 配置寄存器配置寄存器 10 x00000000 TCON 0 x51000008 R/W 控制寄存器控制寄存器0 x00000000TCNTBn0 x510000 xx R/W 计数初值寄存器计数初值寄存器(5个个)0 x0000TCMPBn0 x510000 xxR/W比较寄存器比较寄存器(4个个)0 x0000TCNTOn0 x510000 xxR观察寄存器观察寄存器(5个个)0 x0000定时器专用寄存

7、器定时器专用寄存器Dead zone length-死区宽度设置位死区宽度设置位Prescaler1-timer2、3、4的预分频值的预分频值 其值其值N为:为: 0255 输出频率为:输出频率为:PCLK (N+1)Prescaler0- timer0、1的预分频值的预分频值 其值其值N为:为: 0255 输出频率为:输出频率为:PCLK (N+1)1、TCFG0-预分频器配置寄存器预分频器配置寄存器3124231615870保留(为保留(为0)Dead zone lengthPrescaler1Prescaler02、TCFG1-DMA模式与分频选择寄存器模式与分频选择寄存器DMA mod

8、e-DMA通道选择设置位通道选择设置位 定时器定时器DMA模式:模式:当定时器计数减为当定时器计数减为0时,普通模式下便会向时,普通模式下便会向CPU发发出出INT,而在,而在DMA模式下会向模式下会向CPU发出发出DMA请求请求 MUX4 MUX0-timer4timer0分频值选择分频值选择0000:1/20001:1/40010:1/8 0011:1/1601XX:选择外部:选择外部TCLK0、1(对(对timer0、1是选是选TCLK0,对,对timer4、3、2是选是选TCLK1)31 2423 20191615121187 43 0保留(为保留(为0)DMA modeMUX4MUX

9、3MUX2MUX1MUX0TL4TL0-计数初值自动重装控制位计数初值自动重装控制位 0:单次计数:单次计数 1:计数器值减到:计数器值减到0时,自动重新装入初值连续计数时,自动重新装入初值连续计数TUP4TUP0-计数初值手动更新控制位计数初值手动更新控制位 0:不操作:不操作 1:立即将:立即将TCNTBn中的计数初值装载到计数寄存器中的计数初值装载到计数寄存器TCNTn中中说明:如果没有执行手动装载初值,则计数器启动时无初值说明:如果没有执行手动装载初值,则计数器启动时无初值3、TCON-定时器控制寄存器定时器控制寄存器312322212019181716151413保留TL4TUP4T

10、R4TL3TO3TUP3TR3TL2TO2TUP2TR4TR0-TIMER4TIMER0运行控制位运行控制位0:停止:停止1:启动对应的:启动对应的TIMERTO3TO0- TIMER4TIMER0输出控制位输出控制位0:正相输出:正相输出1:反相输出:反相输出DZE-TIMER0死区操作控制位死区操作控制位0:禁止死区操作:禁止死区操作1:使能死区操作:使能死区操作121110987543210TR2TL1TO1TUP1TR1保留DZETL0TO0TUP0TR03、TCON-定时器控制寄存器(续)定时器控制寄存器(续)使用手动更新完成定时器的初始化:使用手动更新完成定时器的初始化:当计数器的

11、值减到当计数器的值减到0时会发生自动重载操作,但时会发生自动重载操作,但TCNTn的初始值必须由用户提前定义好,在这种情的初始值必须由用户提前定义好,在这种情况下就需要手动更新启动值。以下几个步骤给出了况下就需要手动更新启动值。以下几个步骤给出了更新过程:更新过程:(1)向)向TCNTBn和和TCMPBn写入初始值。写入初始值。(2)置位相应定时器的手动更新位,不管是否使用倒相功)置位相应定时器的手动更新位,不管是否使用倒相功能,推荐设置倒相位能,推荐设置倒相位(3)启动定时器,清除手动更新位。)启动定时器,清除手动更新位。注意:如果定时器被强制停止,注意:如果定时器被强制停止,TCNTn保持

12、原来的值;如保持原来的值;如果要设置一个新的值,必须使用果要设置一个新的值,必须使用手动更新位手动更新位。另外,。另外,手动手动更新位要在定时器启动后清除,否则不能正常运行更新位要在定时器启动后清除,否则不能正常运行。举例:定时器定时中断举例:定时器定时中断假设假设PCLK是是50700000Hz,实现,实现Timer0的的1s计时中计时中断。断。分析分析(1)定时器配置(分频值)定时器配置(分频值工作频率、计数值)工作频率、计数值)Timer0的的prescaler由由rTCFG0 的的 07 bit决定决定;(;(199)Timer0的的divider value由由rTCFG1的的 03

13、 bit决定决定。(。(3:16分频)分频)rTCFG1的第的第2023bit用于决定用于决定Timer计数超出后所采取的响应,我计数超出后所采取的响应,我们使用了中断模式们使用了中断模式,即计数超出后产生中断即计数超出后产生中断Timer0的时钟输入频率的时钟输入频率:50700000/ (119+1)/16=26406,即:,即:1秒内秒内Timer0会进行会进行26406次递减和比较操作次递减和比较操作rTCNTB0=26406;rTCMPB0=0;void timer0_config() rTCFG0=119 ;rTCFG1=3;rTCNTB0=26406;rTCMPB0=0; voi

14、d int_timer0_Init()rSRCPND=rSRCPND|(110);rINTPND=rINTPND|(110); rINTMSK=(110); pISR_TIMER0=(unsigned int)Timer0_ISR;void _irq Timer0_ISR(void)rSRCPND=rSRCPND|(110);rINTPND=rINTPND|(110); (2)定时器启动)定时器启动Update TCNTB0 & TCMPB0rTCON寄存器的第寄存器的第1位是刷新位是刷新Timer0的的COUNT BUFFER REGISTER(TCNTB)和)和COMPARE BU

15、FFER REGISTER(TCMPB),由于是第一次加载),由于是第一次加载Counter和和Comparer,所以我需要手动刷新它们,所以我需要手动刷新它们。置置rTCON第第0位为位为1,开启,开启Timer0把把rTCON第第1位置为位置为0,停止刷新,停止刷新TCNTB0 和和 TCMPB0置置rTCON第第3位为位为1,设置,设置Counter的加载模式为自动加载的加载模式为自动加载,这样每当这样每当Timer计数超出之后(此时计数超出之后(此时TCNTB的值等于的值等于TCMPB的值),的值),Timer会会自动把原来自动把原来给给定的定的Counter重新加载到重新加载到TCN

16、TB中中。void timer0_start() timer0_config () ;rTCON|=1tp,在程序运行,在程序运行一周期后就修改(再重新设定看门狗的定时周期)定时器一周期后就修改(再重新设定看门狗的定时周期)定时器的计数值(俗称的计数值(俗称“喂狗喂狗”),只要程序正常运行,定时器就,只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时刻修改定时器的计数值,定时器将在时器的计数值,定时器将在ti时刻溢出,引发系统复位,使时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。系统得以重新运行,从而起到监控作

17、用。 S3C2410的看门狗控制的看门狗控制S3C2410的看门狗定时器有的看门狗定时器有两个功能两个功能:1. 作为常规定时器使用,并且可以产生中断;作为常规定时器使用,并且可以产生中断;2. 作为看门狗定时器使用,定时时间到时,它可以产生作为看门狗定时器使用,定时时间到时,它可以产生128个时钟周期的复位信号。个时钟周期的复位信号。 看门狗定时器计数值的计算公式如下:看门狗定时器计数值的计算公式如下:输入到计数器的时钟周期:输入到计数器的时钟周期:t_watchdog=1/( PCLK/(Prescaler value+1)/Division_ factor)其中,其中, PCLK为系统时

18、钟频率;为系统时钟频率;Prescaler value为预分频值(值为预分频值(值0255 ););Division_ factor为四分频值,可以是为四分频值,可以是16、32、64或或128。看门狗的定时周期看门狗的定时周期:T = WTCNTt_Watchdog其中其中WTCNT是看门狗定时器的计数器,它的值表示该定时器的是看门狗定时器的计数器,它的值表示该定时器的当前计数值。当前计数值。 S3C2410看门狗电路示意图看门狗电路示意图看门狗定时器寄存器看门狗定时器寄存器1. 看门狗定时器控制寄存器看门狗定时器控制寄存器WTCON通过该寄存器,可以使能通过该寄存器,可以使能/禁止看门狗、

19、选择输入时钟源、禁止看门狗、选择输入时钟源、使能使能/关闭中断、使能关闭中断、使能/关闭输出。关闭输出。 2. 看门狗定时器数据寄存器看门狗定时器数据寄存器WTDAT该数据寄存器用于设置看门狗定时器的初值。在初始的操该数据寄存器用于设置看门狗定时器的初值。在初始的操作中,该值不会自动加载到定时器中,首次定时器初始值作中,该值不会自动加载到定时器中,首次定时器初始值是是0 x8000,以后该寄存器的值会被自动加载到,以后该寄存器的值会被自动加载到WTCNT寄寄存器中。一般作为普通定时器时使用存器中。一般作为普通定时器时使用看门狗定时器控制寄存器看门狗定时器控制寄存器WTCON各位的定义各位的定义 看门狗定时器控制寄存器看门狗定时器控制寄存器 3. 看门狗定时器看门狗定时器/计数器寄存器计数器寄存器WTCNT该寄存器为看门狗定时器的计数器,它的值表示该定时器该寄存器为看门狗定时器的计数器,它的值表示该定时器的的当前计数值当前计数值,即到下一次溢出还需要经历的时钟数。当,即到

温馨提示

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

评论

0/150

提交评论