- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时器中断与实验
定时器中断实验 目的: 了解时钟系统 熟悉ARM定时器中断 会使用定时器中断产生PWM波形 每当程序需要延时时,我们是利用循环语句来实现。 这种方法的延时简单,但不是很精确,就是说不能得到确切的一段时间的延时。 因此当需要精确延时时,就不能采用这种方法了。一般是利用定时器来实现。 MCU的主时钟源主要是外部晶振或外部时钟,而用的最多的是外部晶振 系统内所使用的时钟都是外部时钟源经过一定的处理得到的。 由于外部时钟源的频率一般不能满足系统所需要的高频条件,所以往往需要PLL(锁相环)进行倍频处理。 在s3c2440中,有2个不同的PLL,一个是MPLL,另一个是UPLL。 UPLL是给USB提供48MHz。 MPLL处理后能够得到三个不同的系统时钟: FCLK、HCLK和PCLK FCLK是主频时钟,用于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,再通过这两位的控制,就能确定HCLK和PCLK 而FCLK是如何得到的呢? 它是通过输入时钟(即外部时钟源)的频率,经过一个计算公式得到的,这个计算公式(查阅数据手册)还需要三个参数(MDIV、PDIV、SDIV),而这三个参数是经过寄存器MPLLCON配置得到的 最后,我们用最清晰的线路来绘制一下时钟的产生过程: 外部时钟源→通过寄存器MPLLCON得到FCLK→再通过寄存器CLKDIVN得到HCLK和PCLK。 在本开发板上,外部晶振为12MHz,进过MPLL倍频以后得到400MHz的FCLK, 而FCLK、HCLK、PCLK之间的比例关系为1:4:8, 因此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) ÷ divider prescaler等于249,divider等于8。 25kHz 这个频率用来给计数器TCNTB0用。 假如:我们设置TCNTB0=1000, TCNTB0从1000减到0需要(1000/25000)秒 如果我们要定1秒钟的时间,怎么设置TCNTB0 ? 当TCNTB0 减到0的时候,就会产生TIMER0中断,也就是定时器0中断, 当然在程序前要先把中断相关的屏弊打开, 和定义TIMER0中断服务程序. 当设置了频率和计数值之后,还要在TCON寄存器中来更新你设置的TCNTB0值,并可以启动定时器。 TCON 定时器控制寄存器,是用来设置自动重载,更新TCNTB0,和启动,停止定时器用的 //中断服务程序 void __irq Timer4_ISR(void) { ?????? rSRCPND = rSRCPND | (0x114); ?????? rINTPND = rINTPND | (0x114); ……. ……. } 注意: 中断服务程序要以 __irq 开头,一般在中断服务程序中,清除本中断标志 练习: 用TIMER4中断来控制,蜂鸣器的响声,每0.5秒响一次。 PWM(Pulse Width Modulation) ——脉宽调制, 它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。 s3c2440芯片中一共有5个16位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能, 因此用s3c2440可以很容易地实现PWM功能。 PWM是通过引脚TOUT0~TOUT3输出的,而这4个引脚是与GPB0~GPB3复用的, 因此要实现PWM功能首先要把相应的引脚配置成TOUT输出。 再设置定时器的输出时钟频率,它是以PCLK为基准,再除以用寄存器TCFG0配置的prescaler参数,和用寄存器TCFG1配置的divider参数。 然后设置脉冲的具体宽度,它的基本原理是通过寄存器TCNTBn来对寄存器TCNTn(内部寄存器)进行配置计数,TCNTn是递减的
您可能关注的文档
最近下载
- _【石油修井】特殊井大修工艺技术.pdf VIP
- 《0~3岁婴幼儿教育活动设计与指导》项目四 婴幼儿认知发展教育活动设计与指导.pptx VIP
- 第四章 石油修井 修井工具讲义.pdf VIP
- 2024年《义务教育课程标准(2022年版)课例式解读》初中英语读后感.docx VIP
- 银行半结构化面试必问题目及参考回答.docx VIP
- GB_T 33700-2017地基导航卫星遥感水汽观测规范.docx VIP
- GB_T 42988-2023 多源遥感影像网络协同解译.pdf VIP
- DB42T 2425-2025 自然资源光学遥感卫星影像应用分类分级规范.pdf VIP
- 油水井井筒大修作业资料讲解.ppt VIP
- H公司基层员工激励机制研究.docx VIP
原创力文档


文档评论(0)