欢迎来到天天文库
浏览记录
ID:57269823
大小:14.50 KB
页数:4页
时间:2020-08-08
《arm实验六定时器中断实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验六:定时器中断实验一、实验目的熟悉LPC2000系列ARM7微控制器的定时器0/1的基本设置及应用。二、实验设备硬件:PC机一台、EasyARM2013开发板一套软件:Windows98/XP/2000系统,ADS1.2集成开发环境三、实验内容使用定时器0实现1秒定时,控制LED灯闪烁。采用软件查询方式等待定时时间到达。四、实验预习要求仔细阅读教材关于定时器0和定时器1的说明。五、实验步骤1.启动ADS1.2,使用ARMExecutableImageforlpc2103工程模板建立一个工程TIMEBEEP_C。2.在工程的user中的main文件中编
2、写实验程序。3.选用DebugInRAM生成目标,然后编译连接工程。4.将EasyARM2103开发板上的JP4跳线P0.17短接。5.选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。6.可以全速运行程序,LED亮一秒,熄一秒,然后再亮一秒……依次循环。六、实验参考程序定时器实验的参考程序见程序清单3.9。程序清单4.11定时器0定时中断#include"config.h"#defineLED(1<<17/**************************************************************
3、******************函数名称:Timer0_ISR**函数功能:定时器0中断主程序**输入参数:无**输出参数:无******************************************************************************/void__irqTimer0ISR(void{if((IO0PIN&LED==0{IO0SET=LED;/*点亮发光二极管*/}elseIO0CLR=LED;/*熄灭发光二极管*/T0IR=0x01;/*清除中断标志*/VICVectAddr=0x00;/*中断向量结束
4、*/}/********************************************************************************函数名称:Timer0Init**函数功能:定时器0初始化**输入参数:无**输出参数:无******************************************************************************/voidTimer0Init(void{T0TCR=0x02;/*定时器0复位*/T0PR=0;/*不设时钟分频*/T0MCR=0x03;/*匹
5、配后复位TC,并产生中断*/T0MR0=Fpclk/2;/*设置0.5秒匹配值*/T0IR=0x01;/*清除中断标志*/T0TCR=0x01;/*启动定时器0*/}/********************************************************************************函数名称:main**函数功能:定时器0匹配产生中断**输入函数:无**输出参数:无**************************************************************************
6、****/intmain(void{PINSEL1=PINSEL1&0xFFFFFFF3;/*选择P0.17的GPIO功能*/IO0DIR=LED;/*设置P0.17为输出*/IO0SET=LED;/*设置输出高电平*/Timer0Init(;/*定时器0初始化*/IRQEnable(;/*IRQ中断使能*//*设置向量中断控制器*/VICIntSelect=VICIntSelect&(~(1<<4;/*定时器0分配为IRQ中断*/VICVectCntl0=0x20
7、4;/*定时器0分配为向量IRQ通道0*/VICVectAddr0=(uint32Tim
8、er0ISR;/*分配中断服务程序地址*/VICIntEnable=1<<4;/*定时器0中断使能*/while(1;return0;}七、思考1、若需要LED会响2秒,停2秒,在实验参考程序中应修改什么地方?2、若实验参考程序中设置T0PR=0,请使用Fpclk宏来设置T0MR0寄存器,实现1秒或0.5秒定时。(提示:Fpclk宏在项目的config.h文件中定义
此文档下载收益归作者所有