s3c2410timer工作原理

s3c2410timer工作原理

ID:12509834

大小:83.50 KB

页数:5页

时间:2018-07-17

s3c2410timer工作原理_第1页
s3c2410timer工作原理_第2页
s3c2410timer工作原理_第3页
s3c2410timer工作原理_第4页
s3c2410timer工作原理_第5页
资源描述:

《s3c2410timer工作原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、s3c2410Timer工作原理  s3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持PulseWidthModulation——PWM(脉宽调制)。Timer4是一个内部定时器(internaltimer),他没有输出引脚(outputpins)。   下面是Timer的工作原理图。    如上图所示,PCLK是Timer的信号源,我们通过设置每个Timer相应的Prescaler和ClockDivider把PCLK转换成输入时钟信号传送给各个Timer

2、的逻辑控制单元(ControlLogic),事实上每个Timer都有一个称为输入时钟频率(TimerinputclockFrequency)的参数,这个频率就是通过PCLK,Prescaler和ClockDivider确定下来的,每个Timer的逻辑控制单元就是以这个频率在工作。下面给出输入时钟频率的公式:TimerinputclockFrequency=PCLK/{prescalervalue+1}/{clockdivider}{prescalervalue}=0~255{clockdivider}=2,4,8

3、,16   然而并不是每一个Timer都有对应的Prescaler和ClockDivider,从上面的原理图我们可以看到Timer0,Timer1共用一对Prescaler和ClockDivider,Timer2,Timer3,Timer4共用另一对Prescaler和ClockDivider,s3c2410的整个时钟系统模块只存在两对Prescaler和ClockDivider。   我曾经在讨论watchdog的文章中提到,watchdog也是一种定时器,他的工作就是在一个单位时间内对一个给定的数值进行递减和

4、比较的操作,而我们这篇文章讨论的定时器他的工作内容和watchdog在本质上是一样的。定时器在一个工作周期(Timerinputclockcycle)内的具体工作内容主要有3个。分别是:1.对一个数值进行递减操作2.把递减后的数值和另一个数值进行比较操作3.产生中断或执行DMA操作    在启用Timer之前我们会对Timer进行一系列初始化操作,这些操作包括上面提到的设置Prescaler和ClockDivider,其中还有一个非常重要的就是要给Timer两个数值,我们分别称之为Counter(变量,用于递减)

5、和Comparer(定值,用于比较),Counter会被Timer加载到COUNTBUFFERREGISTER(TCNTB),而Comparer会被Timer加载到和COMPAREBUFFERREGISTER(TCMPB),每个Timer都有这样两个寄存器。当我们设置完毕启动Timer之后,Timer在一个工作周期内所做的就是先把TCNTB中的数值(Counter)减1,之后把TCNTB中的数值和TCMPB中的数值(Comparer)进行对比,若Counter已经被递减到等于Comparer,发生计数超出,则Ti

6、mer产生中断信号(或是执行DMA操作)并自动把Counter重新装入TCNTB(刷新TCNTB以重新进行递减)。以上就是Timer的工作原理。下面我们结合代码具体说明如何对Timer0进行初始化并开启它。首先我假设我的PCLK是50700000Hz//defineTimerregister#definerTCFG0(*(volatileunsignedint*)0x51000000)#definerTCFG1(*(volatileunsignedint*)0x51000004)#definerTCON(*(vo

7、latileunsignedint*)0x51000008)#definerTCNTB0(*(volatileunsignedint*)0x5100000C)#definerTCMPB0(*(volatileunsignedint*)0x51000010)#definerTCNTO0(*(volatileunsignedint*)0x51000014)#definerTCNTB1(*(volatileunsignedint*)0x51000018)#definerTCMPB1(*(volatileunsigned

8、int*)0x5100001C)#definerTCNTO1(*(volatileunsignedint*)0x51000020)#definerTCNTB2(*(volatileunsignedint*)0x51000024)#definerTCMPB2(*(volatileunsignedint*)0x51000028)#definerTCNTO2(*(volatil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。