⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watchdog.c

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 C
字号:
/*
符号常量值含意
WDTO_15MS  Watchdog 	定时器15 毫秒超时
WDTO_30MS  Watchdog 	定时器30 毫秒超时
WDTO_60MS  Watchdog 	定时器60 毫秒超时
WDTO_120MS Watchdog		定时器120 毫秒超时
WDTO_250MS Watchdog 	定时器250 毫秒超时
WDTO_500MS Watchdog 	定时器500 毫秒超时
WDTO_1S    Watchdog 	定时器1 秒超时
WDTO_2S    Watchdog 	定时器2 秒超时
*/

#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/delay.h>
#define uchar unsigned char
#define uint unsigned int
#define CLR_LED PORTB|=0X01 //PD4 接发光管
#define SET_LED PORTB&=0XFE

//误差不会太大的延时1ms 函数

//===============================
 void delay_1ms(void)                 //1ms延时函数
  {
   unsigned int i=12000;
   while(i) --i;
  }
 
//===============================
void delay_nms(unsigned int n)       //N ms延时函数
{
	while(n)
	{
		--n;
		delay_1ms();
	}
}
//===============================

int main(void)
{
	DDRB=0XFF;
	PORTB=0X01; //SET_LED
	wdt_enable(WDTO_1S);	//喂狗时长设定
	wdt_reset();			//喂狗
	delay_nms(500);	
	SET_LED;
	delay_nms(50000);		//等待WDT复位,(在这个长定时里没喂狗会导致AVR超时复位)
	while(1)
		wdt_reset();			//喂狗,此句不要亦可
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -