共2条
1/1 1 跳转至页
LPC2214 LPC2214看门狗的问题,请教

问
我用看门狗的时候老是复位,喂狗的时候是这样的:
VICIntEnClr = 0x000400D0; //禁止Timer0,UART0,UART1,ADC中断,实际上停止了所有中断
WDFEED = 0xAA;
WDFEED = 0x55;
VICIntEnable = 0x000400D0; //使能Timer0,UART0,UART1,ADC中断
这样喂狗应该没问题吧,关了中断的。
上了论坛翻以前的帖子,说是Philips的狗不能喂的太快了!难怪,我在主程序的while里面喂的时候程序根本不能运行,一直在复位。
那请问喂狗多久一次比较好?狗的溢出时间又设置为多久比较好? 答 1: 好像喂的慢了也不行我的狗一用就死。 答 2: 我的看门狗也有问题我原来在主程序里喂狗,10ms喂一次,结果平均半小时复位一次,现在改成1s喂一次,十几个小时,现在还没复位;
两个问题:
1,最少多少时间喂一次不会出问题,
2,确实不能10ms喂一次吗,还是我们的设置有问题 答 3: 周工周工说说话,我的看门狗啊也不对给一个例子好不好,按照实验(一)书中也不行。 答 4: re:关于喂狗:
喂狗之前关中断,喂狗之后开中断,建议操作内核中断,CPSR中的I和F位。
如果您喂狗之间的程序运行时间可预计,即您的程序运行在喂狗周期之内,进行喂狗一般是不会出问题的。
不过,曾经出现过将喂狗程序做成子程序喂狗就会出现问题,而直接写其中的语句就不会出现问题的情况。不知您是不是这样?
VICIntEnClr = 0x000400D0; //禁止Timer0,UART0,UART1,ADC中断,实际上停止了所有中断
WDFEED = 0xAA;
WDFEED = 0x55;
VICIntEnable = 0x000400D0; //使能Timer0,UART0,UART1,ADC中断
这样喂狗应该没问题吧,关了中断的。
上了论坛翻以前的帖子,说是Philips的狗不能喂的太快了!难怪,我在主程序的while里面喂的时候程序根本不能运行,一直在复位。
那请问喂狗多久一次比较好?狗的溢出时间又设置为多久比较好? 答 1: 好像喂的慢了也不行我的狗一用就死。 答 2: 我的看门狗也有问题我原来在主程序里喂狗,10ms喂一次,结果平均半小时复位一次,现在改成1s喂一次,十几个小时,现在还没复位;
两个问题:
1,最少多少时间喂一次不会出问题,
2,确实不能10ms喂一次吗,还是我们的设置有问题 答 3: 周工周工说说话,我的看门狗啊也不对给一个例子好不好,按照实验(一)书中也不行。 答 4: re:关于喂狗:
喂狗之前关中断,喂狗之后开中断,建议操作内核中断,CPSR中的I和F位。
如果您喂狗之间的程序运行时间可预计,即您的程序运行在喂狗周期之内,进行喂狗一般是不会出问题的。
不过,曾经出现过将喂狗程序做成子程序喂狗就会出现问题,而直接写其中的语句就不会出现问题的情况。不知您是不是这样?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
硬核工程师专属补给计划——填盲盒 | |
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! |