看门狗实验预习报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8 看门狗实验

一、实验项目

1、利用watchdog产生定时中断,起定时器作用;

2、编程实现喂狗、看门狗和重启系统。

二、实验类型

验证性。

三、计划学时

2学时。

四、实验目的

1、了解watchdog的作用;

2、掌握lpc2103的watchdog定时器的使用方法。

五、实验设备与平台

1、实验设备:计算机(PC),ARM9-2410EP增强型嵌入式教学实验系统,Multi-ICE仿真器。

2、平台:Windows、ADS1.2。

六、涉及的知识点

定时器的使用方法,看门狗的作用以及使用方法。

七、实验相关知识

看门狗功能简述:

嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(watchdog)电路。看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。

看门狗的工作原理:

设系统程序完整运行一周期的时间是Tp,看门狗的定时周期为Ti。在程序正常运行时,Ti>Tp,看门狗的定时器就不会溢出;若由于干扰等原因使系统不能在Tp时刻内修改看门狗定时器的记数器的记数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控的作用。

S3C2410A的看门狗简介:

S3C2410A的看门狗定时器有两个功能:

1、作为常规时钟,并且可以产生中断;

2、作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周

期的复位信号。

主要特性如下:

通用的中断方式的16bit定时器;

当计数器减到0(发生溢出),产生128个PCLK周期的复位信号。

下图为看门狗的电路示意图,看门狗时钟使用PCLK作为它的时钟源,PCLK通过预分频产生适合的看门狗时钟。

图5.1 Watchdog定时器框图

八、实验内容与步骤

1.实验说明

由于看门狗是对系统的复位或者中断的操作,所以不需要外围的硬件电路。要实现看门

狗的功能,只需对看门狗的寄存器组进行操作。即对看门狗的控制寄存器(WTCON)、看

门狗数据寄存器(WTDAT)、看门狗计数寄存器(WTCNT)的操作。

设计流程如下:

*设置看门狗中断操作,包括全局中断和看门狗中断的使能,看门狗中断向量的定义。

*对看门狗控制寄存器(WTCON)的设置,包括设置预分频比例因子、分频器的分频值、

中断使能和复位使能等。

*对看门狗数据寄存器(WTDAT)和看门狗计数寄存器(WTCNT)的设置。

*启动看门狗定时器。

2.看门狗复位功能实验步骤

(1)创建一个工程SHY5_WATCHDOG_1;

(2)将“实验程序文档/Include/”目录下的8个头文件2410lib.h

2410slib.h

2410addr.h

def.h

2410addr.inc

Memcfg.inc

Option.inc

Option.h

拷贝到本工程的目录里。

(3)将下面5个头文件

2410lib.h

2410slib.h

2410addr.h

def.h

Option.h

添加到本工程。

(4)将“实验程序文档/Source/”目录下的3个原文件

2410init.s

2410lib.c

2410slib.s

拷贝到本工程的目录里,并添加到本工程。

(5)如实验1的图1.9~图1.12,修改本工程的工程设置;

(6)创建Main.c文件,并加入到本工程中;

(7)为Main.c 文件添加如下的语句;

#include "def.h"

#include "2410addr.h"

#include "2410lib.h"

void watchdog_reset_test(void);

void Main(void)

{ ChangeClockDivider(1,1); ; // 1:2:4

ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz

Uart_Init(0,115200);

Uart_Select(0);

Uart_Printf("WatchDog 看门狗复位功能测试\n");

watchdog_reset_test();

while(1);

}

void watchdog_reset_test(void)

{ rWTCON=((100<<8)|(3<<3));

rWTDAT=15000;

rWTCNT=15000;

rWTCON &= ~(3<<1);

rWTCON|=((1<<5)|(1<<0));

while(1)

}

(8)编译连接SHY5_WATCHDOG_1工程;

(9)运行程序。运行一段时间后PC的AXD窗口会出现如图5.2的运行结果

3.看门狗定时器功能实验步骤

(1)创建一个工程SHY5_WATCHDOG_2;

(2)将“实验程序文档/Include/”目录下的8个头文件

2410lib.h

2410slib.h

def.h

2410addr.inc

2410addr.h

Memcfg.inc

Option.inc

Option.h

拷贝到本工程的目录里。

(3)将下面5个头文件

2410lib.h

2410slib.h

2410addr.h

def.h

Option.h

添加到本工程。

(4)将“实验程序文档/Source/”目录下的3个原文件

2410init.s

相关文档
最新文档