实验3 timer定时器

实验3 timer定时器

ID:38492343

大小:53.00 KB

页数:3页

时间:2019-06-13

实验3 timer定时器_第1页
实验3 timer定时器_第2页
实验3 timer定时器_第3页
资源描述:

《实验3 timer定时器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三timer定时器【实验目的】1、学习LPC1768处理器timer定时器(轮询方式,中断方式)的功能原理;2、掌握定时器功能设置及使用方法。【实验要求】了解LPC1768处理器timer定时器(轮询方式,中断方式)的功能原理。【实验原理】一、LPC系列处理器定时器的原理参见课本P106中有关定时器的章节,重点要掌握定时器工作原理、定时器寄存器设置和定时器中断的工作方法等。二、实验板上的定时器1.LPC1700嵌入式处理器具有4个32位可编程定时/计数器,除了外设基址之外操作完全相同。2.定时/计数器对外设时钟(PCLK)周期或

2、外部时钟进行计数,可选择产生中断或根据匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。3.查询方式使用定时器:用查询方式使用定时器可以提供非常准确的延时时间。但在该方式中处理器被独占,系统效率低,所以在实际应用中不宜大量使用这种方式。函数delayMs使用定时器0产生毫秒级的延时。函数共有两个参数:timer_num为定时器序号,delayInMs为延时时间,单位为毫秒。由于定时器时钟由Fpclk提供,当预分频寄存器PR设为0时,计数Fpclk个时钟周期为1秒。所以延时要以毫秒为基本单位就可以设

3、置MR寄存器为Fpclk/1000的整数倍。对Fpclk的设置请参阅系统时钟设置相关章节。4.中断方式使用定时器:在这种方式下定时器与处理器可以并行工作,等计数完成定时器通过中断通知处理器转而执行中断服务程序。这样的使用方式可以提高系统的效率。程序首先要初始化使用的定时器,init_timer()函数执行内容包括设置定时器的匹配寄存器MRn和匹配控制寄存器MCRn,还有安装定时器中断服务函数等。该函数有两个参数:timer_num为初始化定时器序号,TimerInterval为Fpclk周期数也即定时器中断间隔时间。三、程序说明(轮

4、询方式)31.SystemInit():系统初始化,包括系统时钟设置等。2.enable_timer(uint8_ttimer_num):定时器初始化,本实验中使用定时器0,因此参数timer_num设置为0。3.delayMs(uint8_ttimer_num,uint32_tdelayInMs)设置相应定时器(T0或T1,本实验中使用T0)的TCR、PR、MR0、IR、MCR寄存器。TCR(定时器控制寄存器):控制定时/计数器的操作。PR(预分频寄存器):32位预分频寄存器指定预分频计数器的最大值。TC每经过PR+1个PCLK加

5、1。MR0(匹配寄存器):每个定时器有4个匹配寄存器。匹配寄存器值连续与定时器计数值相比较。当两个值相等时自动触发相应动作(产生中断,复位定时器计数器或停止定时器)。具体执行什么动作由MCR寄存器控制。IR(中断寄存器):中断寄存器中4个位用于匹配中断,2个位用于捕获中断。如果有中断产生,IR中的对应位置1,否则为0。向对应的IR位写入1会复位中断,写入0无效。清除定时器匹配中断也会清除对应的DMA请求。MCR(匹配控制寄存器):控制在发生匹配时所执行的操作。三、程序说明(中断方式)1.SystemInit():系统初始化,包括系统

6、时钟设置等。2.init_timer(uint8_ttimer_num,uint32_tTimerInterval):根据不同定时器编号设置定时器相关寄存器以及安装中断服务程序。3.enable_timer(uint8_ttimer_num):定时器使能,本实验中使用定时器0,因此参数timer_num设置为0。4.TIMER0_IRQHandler(void):定时器0中断服务函数,清中断标志,timer0_counter计数加1。三、程序说明1.SysTick_Config(uint32_tticks):SysTick定时器初始

7、化,函数参数是定时器计数的tick数,通过计算可得到准确的定时时间。2.SysTick_Handler(void):SysTick中断服务程序,SysTick定时器采用中断方式工作,计数值每达到一次预设的tick数便产生一次中断。本实验中,在该中断服务子函数中对计数值TimeTick加1。【实验内容与步骤】3一、阅读例程阅读整个工程文件的框架和之前列出的主要函数,了解定时器的用法。二、运行、调试:观察程序运行结果是否正确。三、编程:修改程序相关部分,改变定时器定时周期,从而改变LED灯闪烁频率。#include"lpc17xx.h"

8、#include"led.h"volatileuint32_tTimeTick=0;/*SysTickinterrupthappensevery10ms*/voidSysTick_Handler(void){TimeTick++;}i

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

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

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