📄 wdt.c
字号:
//******************************************************************************
// *
// FileName : WDT.c ICCAVR V6.31A编译 *
// Function : 借助跑马灯实验片内看门狗WDT的功能 *
// Date : 2006-12-11 *
// Version : 1.0 *
// *
// Author : 开关电源 hongtusy@163.com *
// Company : 电子信息技术咨询网 http://www.itsn.cn *
// *
//***************************描述与记事*****************************************
//实验板的AVR程序,片内看门狗WDT的实验演示。
//说明:使用延迟程序,间歇轮点亮或关闭LED灯。
//具体电路可参照使用指南里的说明。PC口输出0,LED即点亮。
//实验板有两种方式使用条形LED,一种是配合LED,使用三极管驱动,
//这里使用后一种,LED公共阳极直接接电源正的驱动方式。
//使用器件:ATMEGA8535,可更换。 使用默认的片内RC振荡器,1MHz。
//使用的开关:SW1-1~8,SW6-2,SW2-6打开,SW3-8为系统复位端。
//记事:如果将喂狗程序关闭或超出需要喂狗的时间再喂,单片机就会复位。
//******************************************************************************
#include <iom8535v.h> //头文件,ATmega8535单片机的寄存器定义
#include "macros.h" //可以使用NOP()以及SEI()等指令.
typedef unsigned char uchar; //宏
typedef unsigned int uint;
/************************************************
函 数 名: DelayS()
功 能: 秒级延时函数
输入参数: 延迟时间/系统晶体
输出参数: 做相应的延迟处理
描 述: /
***********************************************/
void DelayS (uint i) //延时函数,参数i为延时时间
{
uint j,k; //双重延时
for (j=0;j<i;j++)
{
for (k=0;k<6000;k++)
WDR(); //喂狗
//;
}
}
//***********************main***************
void main(void) //主程序
{
uchar i; //数据类型说明,无符号字符型常数
WDTCR = 0b00001111; //设置看门狗定时器并打开。定时时间是2.1s。
DDRC=0xff; //PC口为输出
i=255; //赋值语句
while(1) //如果条件为真,1=真,所以死循环执行嵌套部分。
{
if(i==0) //
{
i=255;
}
PORTC=i; //led输出
DelayS(2);
i--; //led值递减
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -