zigbee学习之看门狗定时器

看门狗的理解:

用的是独立的时钟源。
void Init_Watchdog(void) //初始化看门狗
{
WDCTL = 0x00;       //打开IDLE==0置看门狗
WDCTL |= 0x08;      //看起看门狗模式
WDCTL &= ~0x03;      //1s没有喂狗就发生复位
}

void FeetDog(void) //喂狗

    WDCTL = 0xa0;       //清除定时器。当0xA跟随0x5写到这些位,定时器被清除
    WDCTL = 0x50; 
}
寄存器手册如下:
[7:4] 清除定时器。当 0xA 跟随 0 x 5 写到这些位,定时器 被清除(即加载0。注意定时器仅写入0xA后在 1个看门狗时钟周期内写入0x5时被清除.当看门狗定时器是IDLE为时写这些位没有影响。 当运行在定时器模式,定时器可以通过写 1 到CLR[0] (不管其他 3 位)被清除为 0x0000 (但是不停止)。

[3:2] 模式选择.该位用于启动WDT处于看门狗模式还是定时器模式.当处于定时器模式,设置这些位为IDLE将停止定时器。注意当运行在定时器模式时要转换到看门狗模式,首先停止WDT ,然后启动WDT处于看门狗模式。当运行在看门狗模式 ,写这些位没有影响。

00 : IDLE
01 : IDLE (未使用,等于 00 设置)
10 : 看门狗模式
11 : 定时器模式

[1:0] 定时器间隔选择。这些位选择定时器间隔定义为32kHz振荡器周期的规定数。 注意间隔只能在 WDT 处于 IDLE 时改变,这样间隔必须在定时器启动的同时设置。

00 : 定时周期 × 32 , 76 8 ( ~ 1 s) 当运行在 32 kHz XOSC
01 : 定时周期 × 819 2 ( ~ 0.2 5 s)
10 : 定时周期 × 51 2 ( ~ 15.62 5 ms)
11 : 定时周期 × 64 ( ~ 1.9 ms)

时间: 2025-01-01 06:26:00

zigbee学习之看门狗定时器的相关文章

【转载】DSP看门狗定时器

1 工作方式                在数字信号处理器的工作过程中有时会发生一些异常情况,这可能是在软件执行时发生错误,如堆栈溢出.内存溢出等软件编写时没有预料到的错误,也可能是DSP在运行时受到外界干扰而使得程序运行不正常,在这些情况下将会发生不可预测的错误.为了防止出现这种情况,使用看门狗定时器是一种很好的解决方法.         看门狗定时器实际上是一个定时器,该定时器需要处理器周期性的执行一些特定操作,当处理器运行正常时,这些操作会正常执行,而当出现异常时这些操作将被打断,看门狗

msp430-单片机MSP430f5529看门狗定时器

问题描述 单片机MSP430f5529看门狗定时器 MSP430f5529,用看门狗定时器使p3.7引脚相连的LED每秒点亮一次,灯亮的时间为定时的四分之一 解决方案 MSP430--看门狗定时器 解决方案二: 此处的定是是指你喂狗的周期吗? 你可以把喂狗的周期减少为原来的四分之一,同时做一个计数器,计数喂狗的次数,没当计数能被四整除就点亮灯,否则灭灯

绿色-看门狗问题请教,谢谢。第一次提问,不懂请教我

问题描述 看门狗问题请教,谢谢.第一次提问,不懂请教我 /******************************************************************************* 文件名称:WDTAsWD_Ex.c 功 能:CC253x系列片上系统基础实验--- 看门狗定时器作为看门狗 描 述:让看门狗定时器工作在看门狗模式,超时时间为0.25s(即到达0.25s之前还 没喂狗就产生复位).程序首先闪烁LED6(蓝色).LED5(绿色)和LED4(黄色) ,

嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

Uboot_Kernerl_Add_Watch_Dog:   U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash controller v350... FoundSpi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00Spi(cs1): Block:64KB Chip:16MB Name:"W25Q128B"*** Warning - bad CRC, using def

Linux 软件看门狗 watchdog使用介绍_C 语言

背景: root@119.10.6.23:/usr/local/php# ps aux|grep watchdog root 6 0.0 0.0 0 0 ? S Aug28 4:50 [watchdog/0] root 10 0.0 0.0 0 0 ? S Aug28 4:11 [watchdog/1] root 14 0.0 0.0 0 0 ? S Aug28 3:58 [watchdog/2] root 18 0.0 0.0 0 0 ? S Aug28 3:36 [watchdog/3] 附

软件看门狗:别让你的程序没有响应

一.概述 一些重要的程序,必须让它一直跑着:而且还要时时关心它的状态--不能让它出现死锁现象.当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误.我们首要做的事是,把这个Bug揪出来.但如果时间紧迫,这个Bug又"飘忽不定",那么,我们还是先写一个软件"看门狗",暂时应一下急吧. "看门狗"的需求描述:"看门狗"的运行不出现界面窗口,具有一定的隐蔽性:定时判断目标进程是否运行在当前系统中,如果没有则启动目标进程:判断目

ntpdate watchdog-应用程序调用系统命令ntpdate,导致看门狗重启

问题描述 应用程序调用系统命令ntpdate,导致看门狗重启 命令如下: ntpdate -p 1 ntp.sjtu.edu.cn 看门狗超时时间是1.5s,每次调用NTP同步,就会触发看门狗重启.求助!!

linux内核-关于Linux内核看门狗的疑问

问题描述 关于Linux内核看门狗的疑问 在内核源码中,Linux内核看门狗线程的调度策略是SCHED_FIFO,而我自己的内核模块中调度策略默认为SCHED_NORMAL,按理说FIFO比NORMAL的优先级要高,可为什么我自己模块中的死循环还是让看门狗饿死了,求解释.

arm8裸机开发看门狗问题

问题描述 arm8裸机开发看门狗问题 程序代码如下#include ""s5pc100.h"" typedef struct { unsigned int WTCON; unsigned int WTDAT; unsigned int WTCNT; unsigned int WTCLRINT; }watchdog;#define WATCHDOG (*(volatile watchdog *)0XEA200000) void watchdog_unit(){ pri