3.2 看门狗中断实验

合集下载

电子计数式频率计原理 看门狗端口中断实现计数电路功能

电子计数式频率计原理 看门狗端口中断实现计数电路功能

电子计数式频率计原理看门狗端口中断实现计数电
路功能
 频率是单位时间内周期性过程重复、循环或震动的次数,记为f。

因此,某一信号在T秒内变化了N次,可知该信号的频率为:f=N/T。

下图是电子计数式频率计的原理框图,它主要由四部分组成。

 计数脉冲形成电路:该部分的作用是将被测的周期信号经过放大、整形后转换成可计数的脉冲。

 时间基准T产生电路:这部分的作用是提供准确的计数时间T,又称为闸门(时间)脉冲。

 计数电路:这部分的作用是计数被测周期信号的重复次数。

时间基准产生电路产生闸门脉冲,只有在闸门脉冲持续的时间T内,才允许被测信号输入到计数电路进行计数。

 波形图
 显示电路:该部分的作用是将测量的结果直观的显示出来。

看门狗定时器实验

看门狗定时器实验

看门狗定时器实验1.实验目的(1)掌握LM3S8962中的看门狗定时器(WDT)的功能和使用方法(2)掌握正确使用看门狗的方法2.实验内容(1)ARM的初始化配置(2)WDT的初始化和中断/复位设置(3)编程演示使用看门狗对系统进行监控3.WDT的功能图1 WDT模块结构图嵌入式控制系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。

为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(Watchdog)电路。

看门狗电路的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。

在Stellaris 系列ARM里集成有硬件的看门狗定时器模块。

该模块有两个功能:当看门狗定时器的复位功能禁能时,可以把看门狗作为一个普通定时器来使用;当看门狗定时器的复位功能使能时,用作看门狗定时器,一旦产生了“二次超时”事件,将引起处理器复位。

看门狗定时器具有“二次超时”特性。

当32位计数器在使能后递减计数到0 状态时,看门狗定时器模块产生第一个超时信号,并产生中断触发信号。

在发生了第一个超时事件后,32 位计数器自动重装看门狗定时器装载寄存器(WDTLOAD)的值并重新递减计数。

如果没有清除第一个超时中断状态,则当计数器再次递减到0 时,且复位功能已使能,则看门狗定时器会向处理器发出复位信号。

如果中断状态在32位计数器到达其第二次超时之前被清除,则自动重装32位计数器,并重新开始计数,从而可以避免处理器被复位。

为了防止在程序跑飞时意外修改看门狗模块的配置,特意引入了一个锁定寄存器。

在配置看门狗定时器之后,只要写入锁定寄存器一个不是十六进制0x1ACCE551的任何数值,看门狗模块的所有配置都会被锁定,拒绝软件修改。

因此以后要修改看门狗模块的配置,包括清除中断状态(即喂狗操作),都必须要首先解锁。

解锁方法是向锁定寄存器写入十六进制数值0x1ACCE551 。

如果在看门狗定时器计数器正在计数时把新的值写入WDTLOAD,则计数器将装入新的值并继续计数。

[VIP专享]实验6--看门狗错误喂狗产生中断实验

[VIP专享]实验6--看门狗错误喂狗产生中断实验

实验报告
班级学号姓名同组人
实验日期室温大气压成绩
实验题目:看门狗错误喂狗产生中断实验
一、实验目的:
1、通过本实验进一步掌握对ARM7.0软件和EasyJTAG仿真器的使用,以及进一步熟悉EasyARM2131开发板硬件结构,掌握各引脚功能和接线。

2、通过实验,进一步掌握看门狗的相关原理及方框图。

3、通过实验,进一步了解看门狗出现错误或者是不完整的喂狗时产生复位或使能的功能,并且掌握看门狗的喂狗过程及其错误喂狗产生的中断的功能。

二、实验仪器:
装有ADS1.2及EasyJTAG仿真器的计算机一台、ARM7开发板一块
三、实验原理
(一)具有如下特性:
(二)结构如下:
(三)寄存器描述:。

华清远见实习报告

华清远见实习报告

华清远见嵌入式系统实训报告(2017—2018学年第一学期)姓名:******专业班级:************学号:**************学院:电气工程与自动化学院带队教师: 乔美英,胡伟2017年9月25日华清远见嵌入式系统实训报告一、实习时间2017.9.25--2017.9.29二、实习的性质、目的2.1 实习性质虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了。

从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。

从嵌入式系统的构成上看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统。

从外观上看,嵌入式系统像是一个“可编程”的电子“器件”从功能上看。

它是对宿主对象进行控制,使其具有“智能”的控制器。

从应用的角度看,嵌入式系统与通用计算机系统相比,有如下一些特点:(1)专用性强由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件,尤其是软件,都是为特定用户群来设计的,它通常都具有某种专用性的特点。

(2)实时性好目前,嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制。

所以都对嵌入式系统有或多或少的实时性。

例如,对嵌入在武器装各中的嵌入式系统、在火箭中的嵌入式系统、一些工业控制装置中的控制系统等应用中的实时性要求就极高。

也正因为这种要求,在硬件上嵌入式系统极少使用存取速度慢的磁盘等存储器。

在软件上更是加以精心设计,从而可使嵌入式系统快速地响应外部事件。

当然,随着嵌入式系统应用的扩展,有些系统对实时性要求也并不是很高,例如近年来发展速度比较快的手持式计算机、掌上电脑等。

但总体来说,实时性是对嵌入式系统的普遍要求,是设计者和用户重点考虑的一个重要指标。

(3)可裁剪性好从嵌入式系统专用性的特点来看,作为嵌入式系统的供应者,理应提供各式各样的硬件和软件以各选用。

单片机实验看门狗实验

单片机实验看门狗实验

实验八 看门狗实验

/***************************************************************************** // Function name : rtc_get_date // Description : 获取实时时钟当前时间、日期 // Return type : void // Argument : p_date, 返回日期的指针 *****************************************************************************/ void rtc_get_date(st_date* p_date) { rRTCCON = 0x01; p_date->year = rBCDYEAR ; p_date->mon = rBCDMON ; p_date->day = rBCDDAY ; p_date->week_day= rBCDDATE ; p_date->hour = rBCDHOUR ; p_date->min = rBCDMIN ; p_date->sec = rBCDSEC ; rRTCCON = 0x00; } /***************************************************************************** // Function name : rtc_tick_init // Description : 初始化S3C2410的TICK定时器 // Return type : void // Argument : tick, 设置的TICK频率(时钟滴答的周期为 (1+tick)/128秒) *****************************************************************************/

DSP实验看门狗

DSP实验看门狗

《DSP技术与实验》实验报告姓名:学号:学期:实验名:看门狗实验一、实验目的1.了解VC5509内部WDT的工作基本原理2.了解如何通过软件正确的使用WDT3.了解WDT的正确操作过程二、实验设备1.一台装有CCS4的电脑2.HX5509 dsp 开发板3.XDS100-USB V1仿真器三、实验原理硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。

那么定时时间到后就会使单片机复位。

常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,用DSP的片上外设资源定时器timer来对主程序的运行进行监控。

HX5509的看门狗包括一个16bit的预定标计数器和一个16bit 的主计数器。

从而提供一个32bit的动态范围计数器。

当主计数器减为0时,产生超时事件,引发以下可编程事件1.00b,一个看门狗定时器中断2.01b,看门狗复位3.10b,产生一个非屏蔽中断(NMI)4.11b,不发生任何事件.所产生的超时事件,用过编程控制寄存器WDTCR中的WDOUT域来控制。

四、实验步骤1.打开CCS4,打开watchdog工程,编译工程2.连接好DSP,连接好仿真器3.设置目标configurationa.点击target 下的new target configuration选项b.Connection选择Texas Instruments XDS100V1-USBEmulatorc.Device选择TMS320C5509Ad.点击Save配置,如图五、实验结果及分析六、参考文献所有实验说明.pdfTMS320C55x DSP原理及应用汪春梅,孙洪波,电子工业出版社附件:程序及说明#include <csl.h>#include <csl_wdtim.h>#include <stdio.h>int i, pscVal;WDTIM_Config getConfig;WDTIM_Config myConfig = {0x1000, /* WDPRD */0x0000, /* WDTCR */0x1000 /* WDTCR2 */};main(){CSL_init();#if (_WDTIM_SUPPORT)WDTIM_config(&myConfig);WDTIM_FSET(WDTCR, WDOUT, 1); /* Connect to NMI */WDTIM_FSET(WDTCR, TDDR, 0xF); /* Value to load PSC field */ WDTIM_FSET(WDTCR2, PREMD, 0); /* Set direct mode */WDTIM_service(); /* enable watchdog *///for (i = 0; i < 100; i++)for (;;){WDTIM_getConfig(&getConfig);pscVal = WDTIM_FGET(WDTCR,PSC);printf("pscVal: %x, wdtcr: %x\n",pscVal, getConfig.wdtcr);/* write periodically to WDTIMER - when this line is commented out,the watchdog times out, WDFLAG set to 1, indicatingthat a Watchdog time-out occurred.*/WDTIM_service();} //end for loop#endif}/******************************************************************** **********\* End of wdt.c\******************************************************************** **********/。

看门狗实验

看门狗实验1. 为什么要看门狗?看门狗的原理是什么?外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)它的基本原理为,给看门狗设置一个时间周期,如果在这个周期内程序不能正常运行结束,定时器会自动益处,则系统会自动复位,使系统重新运行进而得到监控系统的作用。

假设程序运行的时间为Tp,定时器时间为Ti,Ti>Tp,在Ti时间内程序正常结束则不会发生益处的现象,如果受干扰等原因系统不能在Tp时刻内修改计数器的值,则在Ti时刻时系统会自动复位,引发系统重新运行。

一般情况下都是应用程序在运行结束后去喂狗,当应用程序出现异常而不能去喂狗时,在超过看门狗定时器的时间范围后,cpu会复位,起始喂狗的过程就是给看门狗的寄存器置位,当程序开始运行时,看门狗的计数器开始递减,在减到零之前必须喂狗,否则系统会复位,当减到零时还没有喂狗则系统复位。

2. 看门狗的功能1)作为常规功能可以产生中断,通用的中断用16bit定时器2)作为看门狗使用,当时钟计数器减为0时(超时),他将产生一个128个时(PCLK)钟的的复位信号我们常见的时钟有3个,FCLK,HCLK,PCLK,他们的工作频率分别是400MHz,400/3MHz,和400/6MHz,看门狗使用的是PCLK时钟。

下图为看门狗的电路示意图PCLK经过两次降频,prescaler的值从0到256-1,Division_factor的值为16,32,64,128。

看门狗定时器记数值的计算公式如下:t_watchdog的值是寄存计数器(WDTCNT)多长时间自减一次,他的单位是时间,一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值不能被自动的装载到看门狗计数器(WTCNT)中,因此,看门狗启动前要将一个初始值写入看门狗计数器(WTCNT)中。

7.看门狗实验


IWDG_SetReload(rlr);
IWDG_ReloadCounter(); IWDG_Enable(); }
3.3 独立看门狗主程序
回到主界面,在 main.c 文件里面编写如下代码:
#include "led.h" #include "delay.h"
#include "sys.h"
#include "wdg.h"
2.5 预分频寄存器IWDG_PR(STM32参考手册 P318)
2.6 重装寄存器IWDG_RLR(STM32参考手册 P318)
2.7 独立看门狗超时时间
溢出时间计算: Tout=((4×2^prer) ×rlr) /40 时钟频率LSI=40K, 一个看门狗时钟周期就是最短超时时间。 最长超时时间= (IWDG_RLR寄存器最大值)X看门狗时钟周期
delay_ms(100);
PBout(0)=0;
while(1);
}
#include "sys.h"
#include "wdg.h"
int main(void)
{ delay_init(); LED_Init();
5.3 窗口看门狗主程序
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8);
void WWDG_Init(u8 tr,u8 wr,u32 fprer);
void WWDG_Set_Counter(u8 cnt); void WWDG_NVIC_Init(void); #endif

AVR单片机看门狗实验报告2013v1(有不同)

void watchdog_on(void) { WDTCR = 0x0F; // WDTCR |=(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0); }
void watchdog_off(void)
{ /* Write logical one to WDTOE and WDE
这里严格要求这样的顺序*/
WDTCR = (1<<WDTOE) | (1<<WDE); /* Turn off WDT 这里严格要求这样的顺序*/
WDTCR = 0x00;
}
void Delay(void) { unsigned char i,j; for(i=200;i>0;i--)
{ for(j=100;j>0;j--); WDR(); //这里喂狗不然超过时间了
BIT 2、1、0 这三位设置看门狗溢出的间隔,在设置好的时间内不喂狗,就重启。
二、 具体例子(基于 ICCAVR7.22)
A、 打开和配置看门狗为最大时间间隔 2.2s void watchdog_on(void) { WDTCR |=(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0); }
{ } }
4.2 加入看门狗后
//ICC-AVR application builder : 2013-9-23 9:24:33 // Target : M16 // Crystal: 4.0000Mhz
#include <iom16v.h> #include <macros.h>
void port_init(void) { PORTD = 0x00; DDRD = 0xff; }

看门狗定时器实训报告

本次实训旨在使学生了解看门狗定时器的基本原理、工作方式以及在嵌入式系统中的应用,通过实际操作,掌握看门狗定时器的配置、使用方法,并学会利用看门狗定时器解决嵌入式系统中的故障和异常。

二、实训内容1. 看门狗定时器原理- 看门狗定时器是一种监测硬件或软件故障的定时器,其工作原理是在程序运行过程中不断重装载,以防止溢出引发中断或复位。

- 看门狗定时器分为独立看门狗和窗口看门狗两种类型。

2. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。

- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。

3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。

4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。

- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。

- 在程序中定期重装载看门狗定时器,以防止系统复位。

5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。

- 通过看门狗定时器监控程序运行状态,防止死锁。

- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。

1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。

2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。

3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。

- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。

4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。

- 在程序中定期重装载看门狗定时器,以防止系统复位。

5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s3c2440看门狗定时器的应用
目的:
了解s3c2440看门狗定时器 熟悉ARM看门狗定时器中断
S3C2440A看门狗定时器的主要作用 是在程序因为由于噪声和系统错误引 起的故障干扰而跑飞后,能够使系统 复位,不至于使系统永远的死下去。
看门狗定时器中断是我们不希望它发生的,因此 我们要想方设法地避免其发生。主要的方法就是 在中断发生前,重新对看门狗定时器的寄存器进 行赋值,使它的定时器重新开始计时。
这种方法俗称喂狗,形象地比喻就是一条看门狗 每隔一段时间(比如说一个小时)就会饿,所以 就要叫唤,唯一使它不叫的方法就是给它喂食, 那么下次叫唤的时间就是从当前喂食起的一个小 时后。因此只要在上次喂食后的一个小时内再给 它喂食,它就永远不会叫唤。
看门狗定时器还有两个寄存于确定超时期限,
WTCNT为当前看门狗定时器的计数值,在第一 次设置看门狗超时时间时,这两个寄存器都要被 写入超时时间的初始值。
当要启动超时中断时,还要设置必要的中断寄存 器,
初始化看门狗定时器
喂狗
如果我们把程序中红色的那条语句注 释掉,则看门狗定时器可以被看成是 一个一般的定时器,即每隔4秒钟,蜂 鸣器会响一下。 如果我们使能看门狗定时器超时复位, 则一定要加上这一句,否则系统会每 隔4秒钟复位一次。
相关文档
最新文档