原创 看门狗

2010-5-16 17:21 1698 8 11 分类: MCU/ 嵌入式

/*--------------------------------------------------------------------
程序名称:看门狗使用
程序功能:看门狗程序是借助于八个发光二极管同时亮灭程序来实现的,教用户如何使用
看门狗
注意事项:在电路板上把LED-J1用跳线帽连接上
提示说明:间隔时间可在程序当中调节
--------------------------------------------------------------------*/


#include <iom16v.h>
#include <macros.h>


/***********************************************/
#define osccal 0x7d 
//ATMEGA8单片机使用内部8M  RC 振荡器,校正常数0x7d
/***********************************************/


#define LED_DDR  DDRA
#define LED_PORT PORTA


/**********************************************
                  延时函数
**********************************************/
void delay_us(unsigned int delay_counter)//延时1us
  {
    do
  {
   delay_counter--;
  }
 while(delay_counter>1);
  }
 
void delay_ms(unsigned int delay_counter)//延时1ms
  {
    while(delay_counter!=0)
   {
     delay_us(1000);
  delay_counter--;
   }
  }
 
/*********************************************
          看门狗初始化
**********************************************/
 
void watchdog_init(void)
{
 _WDR(); //初始化前先喂狗
 WDTCR = 0x1F; //重新设定看门狗定时器的预分频参数时,WDCE也必须先置1
 
 //delay_ms(2);//延时500ms
 
 WDTCR = 0x0F; //看门狗使能,使用2048K分频
}


/*********************************************
               主程序
*********************************************/
void main(void)
{
  OSCCAL="osccal";//内部RC校正常数为0x7d
  LED_DDR=0xff;//初始化LED数据口为输出口
  LED_PORT=0x00;//初始化LED数据口为0,全亮
  watchdog_init();
 
  while(1)
  {
    //_WDR(); //看门狗计数清零,也就是喂狗
 /*注:用户可以把上面这句话去掉,看看显示效果,会和正常时不一样,因为单片机经常复位*/
 delay_ms(500);//延时500ms
    LED_PORT^=0xff;//LED数据口取反
  } 
}

文章评论3条评论)

登录后参与讨论

用户1623314 2010-5-16 17:29

周期可自己设定...

用户1623314 2010-5-16 17:28

WDTCR = 0x0F; //看门狗使能,使用2048K分频 VCC=5V时溢出周期为2100ms

用户1623314 2010-5-16 17:27

看门狗定时器由独立的1MHZ片内驱动 通过设置看门狗定时器的预分频器可以调节看门狗复位的时间间隔.看门狗复位指令WDR用来复位看门狗定时器 如果没有及时复位定时器 一旦时间超过复位周期 AVR就复位 并执行复位向量指向的程序...
相关推荐阅读
用户1623314 2011-01-22 14:52
STM32入门系列教程之十五《如何使用SecureCRT串口终端软件》
attachment download...
用户1623314 2011-01-22 14:51
STM32入门系列教程之十四《STM32的USB下载调试》
attachment download...
用户1623314 2011-01-22 14:50
STM32入门系列教程之十三《点亮LCD液晶屏》
attachment download...
用户1623314 2011-01-22 14:49
STM32入门系列教程之十二《实时时钟RTC编程》
attachment download...
用户1623314 2011-01-22 14:48
STM32入门系列教程之十一《Systick编程》
attachment download...
用户1623314 2011-01-22 14:47
STM32入门系列教程之十《定时器与蜂鸣器》
attachment download...
我要评论
3
8
关闭 站长推荐上一条 /2 下一条