看门狗实验预习报告_第1页
看门狗实验预习报告_第2页
看门狗实验预习报告_第3页
看门狗实验预习报告_第4页
看门狗实验预习报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验8 看门狗实验一、实验项目1、利用watchdog产生定时中断,起定时器作用;2、编程实现喂狗、看门狗和重启系统。二、实验类型验证性。三、计划学时2学时。四、实验目的1、了解watchdog的作用;2、掌握lpc2103的watchdog定时器的使用方法。五、实验设备与平台1、实验设备:计算机(PC),ARM9-2410EP增强型嵌入式教学实验系统,Multi-ICE仿真器。2、平台:Windows、ADS1.2。六、涉及的知识点定时器的使用方法,看门狗的作用以及使用方法。 七、实验相关知识看门狗功能简述:嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。

2、为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(watchdog)电路。看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。看门狗的工作原理:设系统程序完整运行一周期的时间是Tp,看门狗的定时周期为Ti。在程序正常运行时,TiTp,看门狗的定时器就不会溢出;若由于干扰等原因使系统不能在Tp时刻内修改看门狗定时器的记数器的记数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控的作用。S3C2410A的看门狗简介:S3C2410A的看门狗定时器有两个功能:1、 作为常规时钟,并且可以产生中断;2、 作为看门狗定时器使用,当时钟计数减为0(超时

3、)时,它将产生一个128个时钟周期的复位信号。主要特性如下:通用的中断方式的16bit定时器;当计数器减到0(发生溢出),产生128个PCLK周期的复位信号。下图为看门狗的电路示意图,看门狗时钟使用PCLK作为它的时钟源,PCLK通过预分频产生适合的看门狗时钟。图5.1 Watchdog定时器框图八、实验内容与步骤1.实验说明由于看门狗是对系统的复位或者中断的操作,所以不需要外围的硬件电路。要实现看门狗的功能,只需对看门狗的寄存器组进行操作。即对看门狗的控制寄存器(WTCON)、看门狗数据寄存器(WTDAT)、看门狗计数寄存器(WTCNT)的操作。设计流程如下:*设置看门狗中断操作,包括全局中

4、断和看门狗中断的使能,看门狗中断向量的定义。*对看门狗控制寄存器(WTCON)的设置,包括设置预分频比例因子、分频器的分频值、中断使能和复位使能等。*对看门狗数据寄存器(WTDAT)和看门狗计数寄存器(WTCNT)的设置。*启动看门狗定时器。2.看门狗复位功能实验步骤 (1)创建一个工程 SHY5_WATCHDOG_1;(2)将“实验程序文档/Include/”目录下的8个头文件2410lib.h2410slib.h2410addr.hdef.h2410addr.incMemcfg.incOption.incOption.h拷贝到本工程的目录里。(3)将下面5个头文件2410lib.h2410

5、slib.h2410addr.hdef.hOption.h添加到本工程。(4)将“实验程序文档/Source/”目录下的3个原文件2410init.s2410lib.c2410slib.s拷贝到本工程的目录里,并添加到本工程。(5)如实验1的图1.9图1.12,修改本工程的工程设置;(6)创建Main.c文件,并加入到本工程中;(7)为 Main.c 文件添加如下的语句;#include def.h#include 2410addr.h#include 2410lib.hvoid watchdog_reset_test(void);void Main(void) ChangeClockDivi

6、der(1,1); ; / 1:2:4 ChangeMPllValue(0xa1,0x3,0x1); / FCLK=202.8MHz Uart_Init(0,); Uart_Select(0); Uart_Printf(WatchDog 看门狗复位功能测试n);watchdog_reset_test();while(1);void watchdog_reset_test(void) rWTCON=(1008)|(33); rWTDAT=15000; rWTCNT=15000; rWTCON &= (31); rWTCON|=(15)|(10); while(1)(8)编译连接SHY5_WATC

7、HDOG_1工程;(9)运行程序。运行一段时间后PC的AXD窗口会出现如图5.2的运行结果3.看门狗定时器功能实验步骤 (1)创建一个工程 SHY5_WATCHDOG_2;(2)将“实验程序文档/Include/”目录下的8个头文件2410lib.h2410slib.hdef.h2410addr.inc2410addr.hMemcfg.incOption.incOption.h拷贝到本工程的目录里。 (3)将下面5个头文件2410lib.h2410slib.h2410addr.hdef.hOption.h添加到本工程。(4)将“实验程序文档/Source/”目录下的3个原文件2410init.

8、s2410lib.c2410slib.s拷贝到本工程的目录里,并添加到本工程。(5)如实验1的图1.9图1.12,修改本工程的工程设置;(6)创建Main.c文件,并加入到本工程中;(7)为 Main.c 文件添加如下的语句:#include def.h#include 2410addr.h#include 2410lib.hvoid watchdog_test(void);void _irq watchdog_int(void);int f_ucSencondNo=0;/复位次数void watchdog_reset_test(void);void Main(void) ChangeCloc

9、kDivider(1,1); / 1:2:4 ChangeMPllValue(0xa1,0x3,0x1); / FCLK=202.8MHz Uart_Init(0,); Uart_Select(0); Uart_Printf(WatchDog 定时器测试n);watchdog_test();while(1);void watchdog_test(void) ClearPending(BIT_WDT); pISR_WDT=(unsigned)watchdog_int; /建立WatchDog中断 rWTCON=(1008)|(33); rWTDAT=15000; rWTCNT=15000; rW

10、TCON|=(15)|(12);/enable Watchdog timer ang watchdog interrupt rWTCON|=(15)|(12);/每4S watchdog 一次中断。 rINTMOD&=0xFFFFFDFF; rINTMSK &= (BIT_WDT); while(f_ucSencondNo11); void _irq watchdog_int(void)ClearPending(BIT_WDT); f_ucSencondNo+; if(f_ucSencondNo5) Uart_Printf(%ds,f_ucSencondNo); else rINTMSK |= (BIT_WDT); Uart_Printf(watch

温馨提示

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

评论

0/150

提交评论