首页 微波实验报告七

微波实验报告七

举报
开通vip

微波实验报告七 南昌大学实验报告 实验七 定时器实验 (一)实验目的 掌握S3C2410A的定时器基本设置及定时器中断应用。 (二)实验要求 1、学习周动光盘的定时器实验程序。 2、编写程序完成下列功能: 1)从0开始计数,每隔半分钟数值加1并用LED显示,例如隔90秒后,LED显示的数值为3. 2)LED显示数值的方式为:例如:用LED显示3时,四个发光二极管的显示情况从左到右依次为:暗、暗、亮、亮。 (三)实验仪器 硬件: PC机    1台                          MagicARM2410教学实验...

微波实验报告七
南昌大学实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 实验七 定时器实验 (一)实验目的 掌握S3C2410A的定时器基本设置及定时器中断应用。 (二)实验要求 1、学习周动光盘的定时器实验程序。 2、编写程序完成下列功能: 1)从0开始计数,每隔半分钟数值加1并用LED显示,例如隔90秒后,LED显示的数值为3. 2)LED显示数值的方式为:例如:用LED显示3时,四个发光二极管的显示情况从左到右依次为:暗、暗、亮、亮。 (三)实验仪器 硬件: PC机    1台                          MagicARM2410教学实验开发平台    1台 软件:  Windows 98/2000/XP操作系统          ADS 1.2集成开发环境 (四)实验原理 1、 使用S3C2410A的定时器0实现30秒的定时并产生中断,每产生一次中断即控制LED显示一次数据。 2、 S3C2410A具有5个16位定时器,其中有4个可以来控制PWM信号输出,所以称它们为PWM定时器。定时器的时钟源是PCLK,5个定时器共享2个8位预分频器,经过预分频器之后,每个定时器还拥有4个不同分频信号(1/2,1/4,1/8和1/16)输出的时钟分割器,这样就可以使定时器的时钟范围更大。预分频器的设置通过TCFG0寄存器实现,时钟分割器的分频选择(即定时器时钟源选择)设置通过TCFG1寄存器实现; 3、 定时器是减法计数的,当定时器TCNTn的值倒数到0时,TCNTBn寄存器的值会被自动的加载到定时器继续下一次定时操作。当定时器TCNTn的值倒数到0时,如果中断使能,将会产生一次定时器中断请求; 4、 PWM定时器功能框图; 5、 PWM定时器基本操作图; 6、TCFG0和TCFG1寄存器; 7、 TCON寄存器; (五) 实验步骤: (1) 启动ADS 1.2,使用ARM Executable Image for DeviceARM2410工程模板建立一个工程TimeOut。 (2) 在工程src组中的main.c中编写实验代码。 (3) 选用DebugRel生成目标,然后编译链接工程。 (4) 将MagicARM2410实验箱上的蜂鸣器控制电路的跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。 (5) 选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 (6) 在中断服务函数中设置断点,全速运行程序观察是否能产生定时器中断。取消设置断点,全速运行程序,蜂鸣器应每秒响一声。 (六)实验程序 #include  "config.h" // 定义蜂鸣器控制口 #define      BEEP              (1<<10)        /* GPH10口 */    #define      BEEP_MASK          (~BEEP) uint8 num = 0; uint32 led_dat=0; void  DelayNS(uint32  dly) {  uint32  i; for(; dly>0; dly--) for(i=0; i<50000; i++); } void  LED_DispNum(uint32 dat) {    dat = dat & 0x0000000F;    // 参数过滤 // 控制LED4、LED3显示(d3、d2位) if(dat & 0x08) rGPHDAT = rGPHDAT | (0x01<<6); else  rGPHDAT = rGPHDAT & (~(0x01<<6)); if(dat & 0x04) rGPHDAT = rGPHDAT | (0x01<<4); else  rGPHDAT = rGPHDAT & (~(0x01<<4)); // 控制LED2、LED1显示(d1、d0位) rGPEDAT = (rGPEDAT & (~(0x03<<11))) | ((dat&0x03) << 11); } void  IRQ_Time0(void) {    num++; if(num>=6) {     led_dat++; LED_DispNum(led_dat); num = 0; }    // 清除中断标志    rSRCPND = 1<<10; rINTPND = rINTPND; } int  main(void) {    // 初始化I/O  rGPHCON = (rGPHCON & (~(0x03<<20))) | (0x01<<20);  // rGPHCON[21:20] = 01b,设置GPH10为GPIO输出模式     rGPHDAT = rGPHDAT | BEEP;  // 防止蜂鸣器响 rGPECON = (rGPECON & (~(0x0F<<22))) | (0x05<<22);  // rGPECON[25:22] = 0101b,设置GPE11、GPE12为GPIO输出模式 rGPHCON = (rGPHCON & (~(0x33<<8))) | (0x11<<8);    // rGPHCON[13:8] = 01xx01b,设置GPH4、GPH6为GPIO输出模式 // 设置中断服务程序 VICVectAddr[10] = (uint32) IRQ_Time0; // 设置中断控制器 rPRIORITY = 0x00000000;        // 使用默认的固定的优先级 rINTMOD = 0x00000000;        // 所有中断均为IRQ中断 rINTMSK = ~(1<<10);            // 打开TIMER0中断允许 // 定时器设置 // Fclk=200MHz,时钟分频配置为1:2:4,即Pclk=50MHz。 rTCFG0 = 255;                // 预分频器0设置为250,取得200KHz rTCFG1 = 3;                    // TIMER0再取1/4分频,取得50KHz rTCMPB0 = 0x0000;            // 设置定时器为0 rTCNTB0 = 61035;            // 定时0.5秒 rTCON = (1<<1);                // 更新定时器数据        rTCON = (1<<0)|(1<<3);        // 启动定时器 LED_DispNum(led_dat); IRQEnable();                // 使能IRQ中断(CPSR) while(1); return(0);  } (七) 实验现象描述: (八) 实验心得:
本文档为【微波实验报告七】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_995397
暂无简介~
格式:doc
大小:28KB
软件:Word
页数:8
分类:互联网
上传时间:2019-05-27
浏览量:29