/*******************************************************************************
Platform: AVR mega16
Project : 实验三一:WDT看门狗实验
Clock F : 3.6864MHz
Software: ICCAVR7.14C
comments:
1、观察喂狗与不喂狗的区别,使用PB口的LED指示灯做状态指示。
2、养看门狗的用意,在于用它监控系统:在程序本该运行的地方喂狗,如果程序卡死或跑
飞,将不会运行到那,那样狗没有被喂到,饿死了,控制器复位,得以重启从而进行控制。
3、本实验演示功能:养一只AVR内部看门狗,及时喂狗,狗不饿死,单片机不复位;不及时
喂狗,狗饿死了,单片机就复位。
4、本实验的程序设计较为简单,旨在给出养狗、喂狗,不让狗饿死的简单示例。
实际应用时考虑情况较多,要注意什么时候喂狗,放狗。
problem :
*******************************************************************************/
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
/*-----------------------------------------------------------------
函数名称: void wdt_init(void)
函数功能: wdt初始化
参 数:
返 回 值: 无
-----------------------------------------------------------------*/
void wdt_init(void)
{
asm("wdr"); //复位看门狗,即喂狗
//WDR(); //复位看门狗,即喂狗,功能同:asm("wdr");
WDTCR=0x0F; //开启看门狗,2048K,2.1S
}
/*-----------------------------------------------------------------
函数名称: void WDT_off(void)
函数功能: 关闭看门狗
参 数:
返 回 值: 无
关闭看门狗的步骤(手册):
1. 在同一个指令内对 WDTOE 和 WDE 写 "1“ ,即使WDE 已经为 "1“
2. 在紧接的 4 个时钟周期之内对 WDE 写 "0”
-----------------------------------------------------------------*/
void WDT_off(void)
{
WDR(); // WDT复位
WDTCR |= (1<<WDTOE) | (1<<WDE); // 置位 WDTOE 和 WDE
WDTCR = 0x00; // 关闭 WDT
}
void main(void)
{
uchar i;
DDRB = 0XFF;
PORTB= 0XFF;//PB口输出高电平,LED熄灭
wdt_init(); //看门狗初始化
while(1)
{
for(i=0;i<8;i++) //流水灯
{
PORTB = ~BIT(i);
DelayMs(100);
}
asm("wdr"); //喂狗,注释此句将导致狗饿死,AVR复位
}
}
/*------------------------------------------------------------------
WDT看门狗说明:
看门狗定时器由独立的1Mhz片内振荡器驱动。这是 VCC = 5V 时的典型值.
通过设置看门狗定时器的预分频器可以调节看门狗复位的时间间隔,看门狗复位指令
WDR 用来复位看门狗定时器。此外,禁止看门狗定时器或发生复位时定时器也被复位。
复位时间有 8 个选项。如果没有及时复位定时器,一旦时间超过复位周期,ATmega16
就复位,并执行复位向量指向的程序。
------------------------------------------------------------------*/
watchdog(ICC).zip_avr_avr watchdog_pb看门狗
版权申诉
86 浏览量
2022-09-23
12:16:37
上传
评论
收藏 19KB ZIP 举报
APei
- 粉丝: 63
- 资源: 1万+
最新资源
- 维伦触摸屏开机初始化和自动返回主界面
- (精品)通信电源培训教材-理论知识.ppt
- 基于python开发一个支持多用户在线的FTP程序
- python:编写数据分析代码 生成数据,写入表格,从表格中读取数据,数据展示,数据排序 计算数据最大值,最小值,均值,中位数
- (考研复试)数据库笔记.doc
- Java开发的实验教学平台.rar
- 矩阵运算-基于numpy矩阵运算实现ESTI-CS算法.zip
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于msp430的智能宿舍
- 圆三角形矩形检测数据集VOC+YOLO格式228张3类别.7z
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于MSP430的智能电能表设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈