定时器中断实验.ppt

定时器中断实验.ppt

ID:48734004

大小:1.08 MB

页数:28页

时间:2020-01-20

定时器中断实验.ppt_第1页
定时器中断实验.ppt_第2页
定时器中断实验.ppt_第3页
定时器中断实验.ppt_第4页
定时器中断实验.ppt_第5页
资源描述:

《定时器中断实验.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、定时器中断实验目的:了解时钟系统熟悉ARM定时器中断会使用定时器中断产生PWM波形每当程序需要延时时,我们是利用循环语句来实现。这种方法的延时简单,但不是很精确,就是说不能得到确切的一段时间的延时。因此当需要精确延时时,就不能采用这种方法了。一般是利用定时器来实现。MCU的主时钟源主要是外部晶振或外部时钟,而用的最多的是外部晶振系统内所使用的时钟都是外部时钟源经过一定的处理得到的。由于外部时钟源的频率一般不能满足系统所需要的高频条件,所以往往需要PLL(锁相环)进行倍频处理。在s3c2440中,有2个不同的PLL,一个是MPLL,另一个是UPL

2、L。UPLL是给USB提供48MHz。MPLL处理后能够得到三个不同的系统时钟:FCLK、HCLK和PCLKFCLK是主频时钟,用于ARM920T内核;HCLK用于AHB总线设备,如ARM920T,内存控制,中断控制,LCD控制,DMA以及USB主模块;PCLK用于APB总线设备,如外围设备的看门狗,IIS,I2C,PWM,MMC接口,ADC,UART,GPIO,RTC以及SPI。三个系统时钟(FCLK、HCLK和PCLK)是有一定的比例关系这种关系是通过寄存器CLKDIVN中的HDIVN位和PDIVN位来控制的因此我们只要知道了FCLK,再通

3、过这两位的控制,就能确定HCLK和PCLK而FCLK是如何得到的呢?它是通过输入时钟(即外部时钟源)的频率,经过一个计算公式得到的,这个计算公式(查阅数据手册)还需要三个参数(MDIV、PDIV、SDIV),而这三个参数是经过寄存器MPLLCON配置得到的最后,我们用最清晰的线路来绘制一下时钟的产生过程:外部时钟源→通过寄存器MPLLCON得到FCLK→再通过寄存器CLKDIVN得到HCLK和PCLK。在本开发板上,外部晶振为12MHz,进过MPLL倍频以后得到400MHz的FCLK,而FCLK、HCLK、PCLK之间的比例关系为1:4:8,因

4、此HCLK为100MHz,PCLK为50MHz启动文件中定时器中断定时器输出时钟频率=PCLK÷(prescaler+1)÷divider其中prescaler值由TCFG0决定,divider值由TCFG1决定,而prescaler只能取0~255之间的整数,divider只能取2、4、8和16。比如已知PCLK为50MHz,而我们想得到某一定时器的输出时钟频率为25kHz,则依据公式可以使PCLK÷(prescaler+1)÷dividerprescaler等于249,divider等于8。25kHz这个频率用来给计数器TCNTB0用。假如

5、:我们设置TCNTB0=1000,TCNTB0从1000减到0需要(1000/25000)秒如果我们要定1秒钟的时间,怎么设置TCNTB0?当TCNTB0减到0的时候,就会产生TIMER0中断,也就是定时器0中断,当然在程序前要先把中断相关的屏弊打开,和定义TIMER0中断服务程序.当设置了频率和计数值之后,还要在TCON寄存器中来更新你设置的TCNTB0值,并可以启动定时器。TCON定时器控制寄存器,是用来设置自动重载,更新TCNTB0,和启动,停止定时器用的//中断服务程序void__irqTimer4_ISR(void){rSRCPND=

6、rSRCPND

7、(0x1<<14);rINTPND=rINTPND

8、(0x1<<14);…….…….}注意:中断服务程序要以__irq开头,一般在中断服务程序中,清除本中断标志练习:用TIMER4中断来控制,蜂鸣器的响声,每0.5秒响一次。PWM(PulseWidthModulation)——脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。s3c2440芯片中一共有5个16位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能,因此用s3c2440可以很容

9、易地实现PWM功能。PWM是通过引脚TOUT0~TOUT3输出的,而这4个引脚是与GPB0~GPB3复用的,因此要实现PWM功能首先要把相应的引脚配置成TOUT输出。再设置定时器的输出时钟频率,它是以PCLK为基准,再除以用寄存器TCFG0配置的prescaler参数,和用寄存器TCFG1配置的divider参数。然后设置脉冲的具体宽度,它的基本原理是通过寄存器TCNTBn来对寄存器TCNTn(内部寄存器)进行配置计数,TCNTn是递减的,如果减到零,则它又会重新装载TCNTBn里的数,重新开始计数而寄存器TCMPBn作为比较寄存器与计数值进行

10、比较,当TCNTn=TCMPBn时,TOUTn输出的电平会翻转,而当TCNTn减为零时,电平会又翻转过来,就这样周而复始。因此这一步的关键是设置寄存器

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

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

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