实验报告3-定时器1计数器实验_第1页
实验报告3-定时器1计数器实验_第2页
实验报告3-定时器1计数器实验_第3页
实验报告3-定时器1计数器实验_第4页
实验报告3-定时器1计数器实验_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告班级学号姓名同组人实验日期室温大气压成绩实验题目:定时器1计数器实验一、实验目的1、掌握定时器1计数实验的程序,并能作出简单的修改并实现其功能;2、通过本次实验,了解对定时器的计数功能和看门狗的喂狗过程及其错误喂狗产生的中断的功能;3、掌握将CAP1.2的下降沿捕获改成CAP1.3的下降沿捕获,并且实现在按KEY3计数的同时,LED1根据T1TC的值闪烁相应的次数,当T1TC的值大于9时,LED1闪烁相应的次数后,系统会错误喂狗产生中断,中断执行蜂鸣器报警。二、实验设备微型电子计算机(含软件H-JTAGV0.3.1和ADSv1_2)、EasyARM2131开发板。三、实验原理四、实验内容(对书上299页的程序进行修改,阴影部分为修改部分)#include"config.h"#defineBEEP 1<<7 //P0.7控制蜂鸣器,低电平蜂鸣#defineWDT 0 //WDT中断号constuint32LED1=(1<<18); //P1.18控制LED1,低电平点亮***********************************************************************************************************函数名称:main()forCAP1.2**函数功能:Timer1的计数器实验-CAP1.2下降沿**调试说明:需要将跳线JP10连接KEY2。*******************************************************************************void__irqWDT_Int(void){ uint32i; T1TC=0; IO0CLR=BEEP; //蜂鸣器报警 for(i=0;i<0x7fffff;i++); IO0SET=BEEP; VICIntEnClr=1<<WDT; //看门狗喂狗中断,只能通过禁止VIC中断的方法返回 }voidDelayNS(uint32dly){ uint32i; for(;dly>0;dly--) for(i=0;i<50000;i++);}intmain(void){uint32cnt,cnt2,i;PINSEL0=0x00000000; //P0.7管脚连接GPIO PINSEL1=1<<4; //P0.18连接捕获1.3 PINSEL2=PINSEL2&(~0x08);//P1[25:16]连接GPIO IO1DIR=LED1; //设置LED1控制口为输出 IO1SET=LED1; //LED1熄灭 IO0DIR=BEEP; //蜂鸣器控制口输出IO0SET=BEEP; T1CCR=(1<<10); //设置CAP1.3下降沿捕获 T1CTCR=(0x02<<0)| //计数器,在CAP的下降沿递增 (0x03<<2); //选择CAPn.3 T1TC=0; T1TCR=0x01; //启动定时器 VICIntSelect=0x00000000; //连接所有中断到向量中断 VICVectCntl0=0x20|WDT; //分配WDT中断到slot0 VICVectAddr0=(uint32)WDT_Int; //中断服务程序地址 WDMOD=0x00; //清除看门狗超时位WDTOF VICIntEnable=1<<WDT; //中断使能 /*初始化看门狗*/ WDTC=0x60600000; //设定看门狗超时值 WDMOD=0x01; //看门狗中断使能WDFEED=0xAA; //第一次喂狗启动WDT WDFEED=0x55; cnt2=0; IRQEnable(); //使能IRQ中断 while(1)//等待CAP的下降沿 {cnt=T1TC; if(cnt2!=cnt)//当T1TC有增加的时候执行 { for(;cnt>0;cnt--) {IO1CLR=LED1; DelayNS(50);IO1SET=LED1; DelayNS(50);} cnt2=T1TC; if(T1TC>9){WDFEED=0xAA;WDFEED=0x54;} }} return0;}本次实验中通过变量cnt存后面的T1TC的值,通过cnt2存前面的T1TC的值,当前面的T1TC值和后面的T1TC的值不同时,就执行灯闪烁,闪烁的次数等于当前cnt存着的T1TC值,当T1TC的值大于9时,灯还要闪烁其相应的值后,产生中断报警。在实验时可以通过打开MEMORY窗口观察T1TC的值,一般情况下,计数器的值会比实际按键的次数大,这是因为存在着按键抖动,捕获下降沿不准确。在实验中,要将看门狗的超时值WDTC设大一点,不然还没到错误喂狗的时候,看门狗会因为超时产生中断。五、实验结果本次实验的结果是按KEY3键,如果不考虑按键抖动的情况下,LED1灯闪烁的次数与按键的次数相同。打开MEMORY窗口观察T1TC的值,其值与灯闪烁的次数也相同,当灯闪烁的次数超过9后,蜂鸣器会报警。由于存在按键抖动,实验时的计数器T1TC值会比实际的按键次数大,所以灯闪烁的次数会比按键的次数多。六、实验心得通过本次实验,使我对定时器的用法及其计数功能更加了解,对看门狗的喂狗过程及其错误喂狗产生的中断的过程更加明白。在编写LED1灯根据T1TC的值闪烁的程序时,掌握了可以通过变量的比较来判断T1TC值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论