PWMTimer概述S3C2410A有5个16位定时器其中定时器0123.DOCVIP

PWMTimer概述S3C2410A有5个16位定时器其中定时器0123.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PWMTimer概述S3C2410A有5个16位定时器其中定时器0123

PWM Timer 概述 S3C2410A 定时器0和1共享一个8位预定标器,定时器2、3和4共享另一个8位预定标器。每一个定时器有一个有5种不同值的时钟分割器(1/2,1/4,1/8,1/16和TCLK)。其中每一个定时器块从时钟分割器接收时钟信号,而时钟分割器从响应的预定标器接收时钟信号。8位预定标器是可编程的,它根据TCFG0和TCFG1中的数值分割PCLK。 在定时器计数缓冲寄存器(TCNTBn)中有一个初始值,当定时器使能后,这个值就被装载到递减计数器中。而在定时器比较缓冲寄存器(TCMPBn)中也有一个初始值,这一值被装载到比较寄存器中,用来与递减计数器值进行比较。这两个缓冲器使得在频率和占空比发生改变时仍能产生一个稳定的输出。 每一个定时器有一个16位的递减计数器,由定时器时钟驱动。当计数器的值到0,定时器就会产生一个中断请求来通知CPU定时器的操作已经完成。当定时器计数器到0时,TCNTn的值自动的加载到递减计数器中以继续下一操作。但是,当定时器因某种原因停止,如在定时器运行模式中清除定时器使能位(TCONn中)时,TCNTBn中的值将不再加载到计数器中。 TCMPBn中的数据是用来脉宽调制的。当递减计数器的值与比较寄存器的值相同时,定时器控制逻辑将改变输出电平。因此,比较寄存器决定一个PWM输出的接通时间。 特性 5个16位定时器; 2个8位预定标器和2个4位分割器; 可编程的占空比; 自动再装入模式或一次脉冲模式; 死区发生器。 图1、16位PWM定时器模块框图 预定标器和分割器 一个8位预定标器和一个4位分割器作用下的输出频率: 4位分割器的设置 最低分解力 (预定标器=0) 最高分解力 (预定标器=255) 最大间隔时间(TCNTBn=65535) 1/2(PCLK=66.5MHz) 0.0300us(33.2500MHz) 7.6992us(129.8828KHz) 0.5045sec 1/4(PCLK=66.5MHz) 0.0601us(16.6250MHz) 15.3984us(64.9414KHz) 1.0091sec 1/8(PCLK=66.5MHz) 0.1203us(8.3125MHz) 30.7968us(32.4707KHz) 2.0182sec 1/16(PCLK=66.5MHz) 0.2406us(4.1562MHz) 61.5936us(16.2353KHz) 4.0365sec 定时器基本操作 图2、定时器运行时序 一个定时器(定时器4除外)都包含TCNTBn、TCNTn、TCMPBn和TCMPn几个寄存器。(TCNTn和TCMPn是内部寄存器的名称。TCNTn的值可以通过读TCNTOn得到)当定时器达到0时,TCNTBn和TCMPBn的值将自动加载到TCNTn和TCMPn中。当TCNTn到0且中断使能时,定时器将产生一个中断请求。 自动加载和双缓冲模式 脉宽调制定时器有一个双缓冲功能,在这种情况下,改变下次加载值的同时不影响当前定时周期。因此,尽管设置一个新的定时器值,当前定时器的操作将会继续完成而不受影响。 定时器的值可以写入定时器计数值缓冲寄存器(TCNTBn)中,而当前计数器的值可以通过读定时器计数值观测寄存器(TCNTOn)得到。 当TCNTn的值到0时,自动加载操作复制TCNTBn的值到TCNTn中。但是如果自动加载模式没有使能,TCNT0将不进行任何操作。 图3、双缓冲功能时序图 用手动更新位和逆变器位对定时器进行初始化 当递减计数器的值到0时,自动加载操作才能进行。所以,用户必须预先对TCNTn定义一个起始值。因此,起始值必须由手动更新位载入。以下步骤描述了怎么起始一个定时器: 将初始值写入到TCNTBn和TCMPBn中; 设置相应定时器的手动更新位。推荐配置逆变器位开或关(不管逆变器用与否); 设置相应定时器的起始位从而启动一个定时器(同时清除手动更新位)。 如果定时器被迫停止,TCNTn将保留计数器的值且不重载TCNTBn。如果用户需要设置一个新值,必须执行手动更新。 注:无论何时TOUT逆变器开关位的值改变,TOUTn的逻辑值将随之改变。因此,推荐逆变器开关位的配置与手动更新位同时进行。 定时器操作步骤: 以下操作步骤地结果如图4所示。 使能自动加载功能。设置TCNTBn为160,TCMPBn为110。设置手动更新位并配置逆变器位。手动更新位设置TCNTn和TCMPn的值与TCNTBn和TCMPBn相同。 然后设置TCNTBn和TCMPBn的值分别为80和40,确定下一个周期的值。 如果手动更新位为0、逆变器关且自动加载开,则设置起始位。则在定时器的延迟时间后定时器开始递减计数。 当TCNTn的值和TCMPn相等时,则TOUTn的逻辑电平将发生改变,由低到

文档评论(0)

jinchenl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档