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--看门狗错误喂狗产生中断实验
实验报告
班级学号姓名同组人
实验日期室温大气压成绩
实验题目:看门狗错误喂狗产生中断实验
一、实验目的:
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技术与实验》实验报告姓名:学号:学期:实验名:看门狗实验一、实验目的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_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.掌握“看门狗”(MAX 813L )复位控制的硬件接口技术2.掌握“看门狗”(MAX 813L )复位控制驱动程序的设计方法二、实验说明为了控制系统不受外界干扰而出现死机现象,可采用MAX813L 复位监控芯片,该芯片具备复位及监视跟踪两大功能。
主要功能:·精密电源电压、监控4.65V ·200ms 复位脉冲宽度·V1=1V 时保证复位RESET 有效。
·TTL/CMOS 兼容的防抖动人工复位输入·独立的监视跟踪定时器1.6S 溢出时间。
·电源故障或欠电压报警的电压监控 ·加电,掉电有电压降低时输出复位信号。
·低电平有效的人工复位输入 。
各引脚的功能和意义如图:(1)MR :人工复位输入、当输入降至0.8V 时产生复位脉冲,低电平有效的输入可用开关短路 到地或TTL/CMOS 逻辑驱动,不用时浮空。
(2)VCC :+5V 输入。
(3)GND :地。
(4)PFI :电源故障比较器输入,高PFI 低于1.25V 时PFO 输出低电平吸收电流;否则PFO 输出保持高电平,如果不用将PFI 接地或VCC 。
(5)PFO :电源故障比较器输出,高PFI 低于1.25V 时,输出低电平且吸收电流;否则PFO 输出 保持高电平。
(6)WDI :监视跟踪定时器输入,WDI 保持高或低电平时间长达1.6S ,WDI 输出低电平,WDI 浮空或接高阻三态门将禁止监控跟踪定时器功能,只要发生复位,内部监视跟踪定时的清零。
(7)RESET :复位输出(低电平有效)。
(8)WDO :监视跟踪定时器输出,当内部监视跟踪定时器完成1.6S 计数后,本脚输出低电平,直到下一次监视跟踪定时器清零, 才再变为高电平,在低电源或VCC 低于复位门限电压时,WDO 就保持低电平,只要VCC 上升到复位门跟电压以上后 WDO 就变为高电平而没有滞后。
S3C2410的看门狗定时器中断实验
实验5 S3C2410 看门狗定时器中断实验一、实验目的掌握S3C2410 看门狗定时器的工作原理和定时时间的计算方法,会在MDK中可视化配置看门狗,理解看门狗中断的触发过程,熟练掌握和中断相关寄存器的使用以及中断服务函数的编程方法。
二、实验预备知识熟悉UP-NETARM2410实验箱的结构,S3C2410的外设接口电路,熟悉MDK编程软件的使用方法,熟悉C语言程序设计的一般方法。
三、实验内容在MDK的配置向导中配置WDT,使其定时一秒,定时时间到后触发WDT中断,控制三个LED每隔一秒循环闪烁,编写C语言程序编译并下载到UP-NETARM2410实验箱,可以看到GPC5/GPC6/GPC7上所接的三个LED循环闪烁,实现精确定时一秒。
图1 MDK中看门狗定时器的配置四、参考程序本工程中包括三个文件:S3C2410A.s、ledflash.c和cvectaddr.c主程序文件ledflash.c的内容如下:1 extern void openDog(void);23 extern void c_Wdt_ISR(void);45 int main()6 {7 // 0x010FFF20+0x24 is the address of Watchdog jumper8 *(volatile unsigned int *)(0x010FFF20+4*9)=(unsigned)c_Wdt_ISR;9 openDog();10 while(1)11 {1213 }14 }文件cvectaddr.c的内容如下:1 #define LED1_MASK 0x202 #define LED2_MASK 0x403 #define LED3_MASK 0x8045 #define GPCDAT_ADDR (*(volatile unsigned int *)0x56000024)67 #define SRCPND (*(volatile unsigned int *)0x4A000000)8 #define INTMOD (*(volatile unsigned int *)0x4A000004)9 #define INTMSK (*(volatile unsigned int *)0x4A000008)10 #define PRIORITY (*(volatile unsigned int *)0x4A00000C)11 #define INTPND (*(volatile unsigned int *)0x4A000010)12 #define INTOFFSET (*(volatile unsigned int *)0x4A0000141314 // enable watchdog timer intterupt15 void openDog(void)16 {17 INTMOD = 0x0; // set as IRQ18 INTMSK &= ~(0x200); //open Dog19 PRIORITY = 0x7F;20 }21 int number=0;22 int nLED=0;23 __irq void c_Wdt_ISR()24 {2526 int iReg=0;27 if(SRCPND | 0x200)28 SRCPND = 0x200;29 if(INTPND | 0x200)30 INTPND = 0x200;31 //INTMSK |= 0xFFFFFFFF; //close all, include Dog32 nLED = 0;33 switch(number)34 {35 case 0: // SWI number 0 code36 nLED ^=(LED2_MASK | LED3_MASK);// LED1 light37 break;38 case 1:39 nLED ^=(LED1_MASK | LED3_MASK);// LED2 light40 break;41 case 2:42 nLED ^=(LED1_MASK | LED2_MASK);// LED3 light43 break;44 }45 number++;46 if(number>2)47 number=0;48 GPCDAT_ADDR = nLED; // Led shine in turn4950 __asm // open IRQ51 {52 MRS iReg, CPSR53 BIC iReg, iReg, #0x8054 MSR CPSR_c, iReg55 }56 //INTMSK &= ~(0x200); // open Dog57 }五、实验结果请自己作答。
STM32看门狗实验
#define IWDG_Prescaler_8
((uint8_t)0x01)
#define IWDG_Prescaler_16
((uint8_t)0x02)
#define IWDG_Prescaler_32
((uint8_t)0x03)
#define IWDG_Prescaler_64
((uint8_t)0x04)
硬件分析:
看门狗原理:
看门狗又叫watchdog timer(WDT),是一个定时器电路。 一个输入端:叫喂狗引脚; 一个输出端:连接到MCU的RESET引脚;
在系统运行以后,启动了看门狗的计数器,看门狗就开始自动计数; MCU正常工作时,每隔一段时间输出一个信号到喂狗 端,将WDT清零;一旦单片机由于干扰造成程序跑飞后,而进入死循环状态时,在超过规定的时间内 “喂狗”程序不能被 执行,看门狗计数器就会溢出,从而引起看门狗中断,就会输出一个复位信号到MCU,造成系统复位。 在使用看门狗时,要注意适时喂狗。
独立看门狗实验
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环, 程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于 对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"。 建议:看门狗是定时器的一种,学习看门狗对于理解定时器有着借鉴作用
IWDG 寄存器映像
IWDG 寄存器映像和复位值
有关寄存器的起始地址,参见数据手册.
程序分析: 固件库库函数分析:
IWDG 的库函数如下所示:
函数 IWDG_WriteAccessCmd
看门狗实验
看门狗实验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)中。
嵌入式实验5 看门狗实验
广州大学学生实验报告开课学院及实验室:机电学院电子楼618 2014年 5 月 16 日图5.1 Watchdog定时器框图八、实验内容与步骤2410init.s2410lib.c2410slib.s拷贝到本工程的目录里,并添加到本工程。
(5)如实验1的图1.9~图1.12,修改本工程的工程设置;(6)创建Main.c文件,并加入到本工程中;(7)为Main.c 文件添加如下的语句:#include "def.h"#include "2410addr.h"#include "2410lib.h"void watchdog_test(void);void __irq watchdog_int(void);int f_ucSencondNo=0; //复位次数void watchdog_reset_test(void);void Main(void){ ChangeClockDivider(1,1); // 1:2:4ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHzUart_Init(0,115200);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=((100<<8)|(3<<3));rWTDA T=15000;rWTCNT=15000;rWTCON|=((1<<5)|(1<<2));//enable Watchdog timer ang watchdog interruptrWTCON|=(1<<5)|(1<<2); //每4S watchdog 一次中断。
无线通信技术综合训练实验指导书I(CC2530基础)实验八
⽆线通信技术综合训练实验指导书I(CC2530基础)实验⼋实验⼋外部中断实验实验⼋外部中断实验CPU 有 18 个中断源。
每个中断源有它⾃⼰的、位于⼀系列特殊功能寄存器中的中断请求标志。
每个中断通过相应的标志请求可以单独使能或禁⽌。
通⽤ I/O 引脚设置为输⼊后,可以⽤于产⽣通⽤ I/O 中断(外部中断)。
⼀、实验⽬的通过本实验的学习,熟悉 CC2530 芯⽚通⽤ I/O 中断相关寄存器的配置和使⽤⽅法。
1. 2. 3. 4. 熟悉 CC2530 芯⽚通⽤ I/O 中断相关寄存器配置和使⽤⽅法;掌握 CC2530 芯⽚通⽤ I/O 中断响应处理⽅法;掌握 CC2530 芯⽚中断基本原理;了解CC2530 芯⽚中断优先级。
⼆、实验内容1. 2. 在 CC2530 节点开发板上,启⽤通⽤ I/O 中断配置,由查询控制 LED 闪烁;在 CC2530 节点开发板上,启⽤通⽤ I/O 中断配置,由中断控制 LED 闪烁。
三、实验条件1. 2. 3. 4. 5. 6. 7. ⽤户 PC 机(装有 Microsoft Windows XP 系统)正确安装 IAR Embedded Workbench for 8051 集成开发环境; CC2530 节点开发板(插有 CC2530 模块,带 LCD 模块)1 块; CC Debugger 多功能调试器 1 个; USB 连接线 1根;串⼝连接线 1 根;杜邦线若⼲; 5V 电源 1 个。
四、实验原理1. 中断屏蔽每个中断可以通过中断使能特殊功能寄存器中的中断使能位 IEN0、IEN1 或 IEN2 使能或禁⽌。
图 3-8-1 给出了所有中断源和相关控制以及状态寄存器的完整概况。
当调⽤中断服务程序时阴影框中的中断标志将被硬件⾃动清除。
表⽰触发,可能是因为电平源也可能是因为边沿形成。
中断失去了它,它们将被当作⼀个电平触发(适⽤于端⼝ 0,端⼝ 1 和端⼝2),转换器显⽰为默认和表⽰上升或下降沿检测,即在什么时候中断产⽣。
看门狗中断实验
初始化看门狗定时器
喂狗
如果我们把程序中红色的那条语句注 释掉,则看门狗定时器可以被看成是 一个一般的定时器,即每隔4秒钟,蜂 鸣器会响一下。 如果我们使能看门狗定时器超时复位, 则一定要加上这一句,否则系统会每 隔4秒钟复位一次。
看门狗中断
这种方法俗称喂狗,形象地比喻就是一条看门狗 每隔一段时间(比如说一个小时)就会饿,所 以就要叫唤,唯一使它不叫的方法就是给它喂 食,那么下次叫唤的时间就是从当前喂食起的 一个小时后。因此只要在上次喂食后的一个小
看门狗定时器还有两个寄存器WTDAT和WTCNT, WTDAT用于确定超时期限, WTCNT为当前看门狗定时器的计数值,在第一次 设置看门狗超时时间时,这两个寄存器都要被 写入超时时间的初始值。 当要启动超时中断时,还要设置必要的中断寄存 器,
看门狗定时器的应用
目的:
了解看门狗定时器 熟悉ARM看门狗定时器中断
看门狗定时器的主要作用是在程序因为 由于噪声和系统错误引起的故障干扰 而跑飞后,能够使系统复位,不至于 使系统永远的死下去。
看门狗定时器中断是我们不希望它发生的,因此 我们要想方设法地避免其发生 器进行赋值,使它的定时器重新开始计时。
WatchDog产生中断和系统复位
WatchDog产生中断和系统复位
1、导入例程controlSUITE\device_support\f2806x\v115\F2806x_examples\watchdog,点击
debug进入调试界面
2、Enable实时调试模式,点开变量刷新,把LoopCount++添加到变量观察器中
3、点击RUN,会看到LoopCount一直在更新,但是WakeCount数值不变,一直为0
4、取消实时仿真模式,点击reset,点击退出,对主程序进行更改,注释掉ServiceDog()函
数,进入debug,RUN,会看到LoopCount一直在更新,并且WakeCount数值在一直增加
5、实验表明可以用看门狗产生WAKEINT中断。
6、如果用看门狗产生复位,则注释掉91行的SysCtrlRegs.SCSR = BIT1;
7、然后debug,点击RUN,会发现程序很奇怪,两个变量的值会瞬间达到很大
8、此时点击暂停,会发现程序会跑飞,会弹出读不到PC的错误,Console也会报错,提示
错误信息是C28X被复位了,表明C28X内核是被复位了
9、再把ServiceDog()加入程序,在进行调试,则程序正常运行,表明确实是watchdog让C28X
复位了。
10、综上,可以说明watchdog产生了系统复位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的:
了解s3c2440看门狗定时器 熟悉ARM看门狗定时器中断
S3C2440A看门狗定时器的主要作用 是在程序因为由于噪声和系统错误引 起的故障干扰而跑飞后,能够使系统 复位,不至于使系统永远的死下去。
看门狗定时器中断是我们不希望它发生的,因此 我们要想方设法地避免其发生。主要的方法就是 在中断发生前,重新对看门狗定时器的寄存器进 行赋值,使它的定时器重新开始计时。
这种方法俗称喂狗,形象地比喻就是一条看门狗 每隔一段时间(比如说一个小时)就会饿,所以 就要叫唤,唯一使它不叫的方法就是给它喂食, 那么下次叫唤的时间就是从当前喂食起的一个小 时后。因此只要在上次喂食后的一个小时内再给 它喂食,它就永远不会叫唤。
看门狗定时器还有两个寄存于确定超时期限,
WTCNT为当前看门狗定时器的计数值,在第一 次设置看门狗超时时间时,这两个寄存器都要被 写入超时时间的初始值。
当要启动超时中断时,还要设置必要的中断寄存 器,
初始化看门狗定时器
喂狗
如果我们把程序中红色的那条语句注 释掉,则看门狗定时器可以被看成是 一个一般的定时器,即每隔4秒钟,蜂 鸣器会响一下。 如果我们使能看门狗定时器超时复位, 则一定要加上这一句,否则系统会每 隔4秒钟复位一次。