以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
很多人喜欢养宠物狗,很多单片鸭大侠则喜欢养看门狗,如果您也希望搞条AVR的看门狗养养,那么本节很适合您。
养看门狗的用意,在于用它监控系统:在程序本该运行的地方喂狗,如果程序卡死或跑飞,将不会运行到那,那样狗没有被喂到,饿死了,控制器复位,得以重启从而进行控制。
本节演示功能:养一只AVR内部看门狗,及时喂狗,狗不饿死,AVR单片鸭不复位;不及时喂狗,狗饿死了,AVR单片鸭就复位。
本节的程序设计较为简单,旨在给出养狗、喂狗,不让狗饿死的简单示例。实际应用时考虑情况较多的要注意什么时候喂狗,放狗。 |
|
下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解! //目标系统: 基于AVR单片机
//应用软件: ICC AVR /*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
观察喂狗与不喂狗的区别,使用PB口的LED指示灯做状态指示。
----------------------------------------------------------------------
硬件连接:
将PB口的LED指示灯使能开关切换到"ON"状态。
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>
#include "D:\ICC_H\CmmICC.H" #define DISP_DDR DDRB
#define DISP_PORT PORTB /*--------------------------------------------------------------------
程序名称:看门狗WDT初始化程序
程序功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void wdt_init(void)
{
asm("wdr"); //clr wdt
WDTCR=0x0F; //enable wdt,clk = 2048,2.1S
}
/*--------------------------------------------------------------------
程序名称:
程序功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void main(void)
{
uint8 i;
DISP_DDR = 0XFF;
wdt_init(); while(1)
{
DISP_PORT++; //数据显示向上加,作AVR正常运行的指示
asm("wdr"); //喂狗,去除此句将导致狗饿死,AVR复位
delay50ms(20);
}
} |
在AVR的运行程序中设置让PB显示端口自加。若AVR正常工作,及时喂狗,则单片机设置的显示端口正常自加。去除语句:asm("wdr");单片机不断复位,程序得不到允许,自加数据没有显示往上加。
|
---|
可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48
ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162
ATmega169 ATmega169P ATmega8515 ATmega8535
ATtiny13 | ATtiny24 | ATtiny44 | ATtiny84 | ATtiny26 | ATtiny2313 |
ATmega48 | ATmega88 | ATmega168 | ATmega8 | ATmega16 | ATmega32 |
ATmega64 | ATmega128 | ATmega162 | ATmega169 | ATmega8515 | ATmega8535 |
AVR 看门狗WDT程序
——