实验3-2timer定时器(中断方式)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三-2 timer定时器(中断方式)
【实验目的】
1、学习LPC1768处理器timer定时器(中断方式)的功能原理;
2、掌握定时器功能设置及使用方法。
【实验要求】
1、了解LPC1768处理器timer定时器(中断方式)的功能原理。
【实验原理】
一、LPC系列处理器定时器的原理
参见课本P106中有关定时器的章节,重点要掌握定时器工作原理、定时器寄存器设置和定时器中断的工作方法等。
二、实验板上的定时器
1.LPC1700嵌入式处理器具有4个32位可编程定时/计数器,除了外设基址之外操作完全相同。
2. 定时/计数器对外设时钟(PCLK)周期或外部时钟进行计数,可选择产生中断或根据匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。
3. 中断方式使用定时器:
在这种方式下定时器与处理器可以并行工作,等计数完成定时器通过中断通知处理器转而执行中断服务程序。这样的使用方式可以提高系统的效率。
程序首先要初始化使用的定时器,init_timer()函数执行内容包括设置定时器的匹配寄存器MRn和匹配控制寄存器MCRn,还有安装定时器中断服务函数等。该函数有两个参数:timer_num为初始化定时器序号,TimerInterval为Fpclk周期数也即定时器中断间隔时间。
三、程序说明
1.SystemInit():
系统初始化,包括系统时钟设置等。
2. init_timer ( uint8_t timer_num, uint32_t TimerInterval ):
根据不同定时器编号设置定时器相关寄存器以及安装中断服务程序。
3. enable_timer( uint8_t timer_num ):
定时器使能,本实验中使用定时器0,因此参数timer_num设置为0。
4. TIMER0_IRQHandler (void):
定时器0中断服务函数,清中断标志,timer0_counter计数加1。
【实验内容与步骤】
一、阅读例程
阅读整个工程文件的框架和之前列出的主要函数,了解定时器的用法。
二、运行、调试:
观察程序运行结果是否正确。
三、编程:
修改程序相关部分,改变定时器定时周期,从而改变LED灯闪烁频率。
【实验习题】
1.定时器使用中中断方式的功能原理和实现方法。
2. 程序中定时器中断间隔和LED灯的亮灭间隔如何确定?