看门狗喂狗实验(有问题)

看门狗喂狗实验(有问题)_第1张图片

这里我用的是普中科技黄箱子开发板,在调试延时函数的时候,我在软件里面调试的延时ms级别,但是到了实际却不一样。

我也知道自己调错了,别人延时函数给的是110左右,我给的是200.结果观察开发板上灯亮的时间持续1s左右熄灭,等我找到原因再改到下面

 看门狗喂狗实验(有问题)_第2张图片

这里出现的问题现在还没解决,解决之后再回来更新 

看门狗喂狗实验(有问题)_第3张图片

 看门狗喂狗实验(有问题)_第4张图片

 看门狗喂狗实验(有问题)_第5张图片

我这里也计算了 11.0592M的对应64分频下的情况

应该是25,165,824/11059200=2.276左右

那么第一次喂狗到下一次喂狗只要不超过2s就可以不复位。

如果超过了2.276s,就会是灯一直点亮熄灭的现象。

这个代码是我调的

#include
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0XE1;//看门狗的寄存器位置
sbit led1=P2^0;

void delay_ms(uint x)//调试软件延时简直是折磨
{
  uint i;uchar j;
	for(i=x;i>0;i--)
		for(j=200;j>0;j--);
}
int main()
{
 WDT_CONTR=0x35;//大约2s没喂狗,自动复位
	led1=0;
	delay_ms(500);//
	led1=1;
	while(1)
	{
	     delay_ms(1400);//超2s看门狗自动复位
		  delay_ms(500);//疯狂复位
		 WDT_CONTR=0x35;
	}
	
	return 0;
}

 这个时间就不会让狗复位,没搞明白

for(j=110;j>0;j--);
 delay_ms(1370);//超2s看门狗自动复位

 

你可能感兴趣的:(单片机自己理解的知识(自用),c语言,51单片机)