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

📄 internalwatchdog.c

📁 用quartusII编写的
💻 C
字号:
#include "..\..\includes.h"

#if CFG_INTERNAL_WATCH_DOG_TIMER_EN>0


//------------------------------------------------------
// 看门狗定时器初始化
//------------------------------------------------------
extern void WDT_Init(void)
{
      WDT_INT_DIS();
      
      WDT_RESET_DIS();
            
      WDT_CLEAR();

      WDT_SetTimeoutValue( 3 );
}


//------------------------------------------------------
// 设置看门狗定时器的超时值
//
// 参数含义:
//          value        看门狗中断响应    看门狗溢出复位系统
//            0               2^17          2^17 + 512
//            1               2^20          2^20 + 512
//            2               2^23          2^23 + 512
//            3               2^26          2^26 + 512
//------------------------------------------------------
extern void WDT_SetTimeoutValue( INT8U value )
{
      INT8U mask;

      value &= 0x03;

      mask = CKCON;

      mask &= 0x3F;

      mask |= (value<<6);

      CKCON = mask;
}



//------------------------------------------------------
// 看门狗定时器中断服务程序
//------------------------------------------------------
void WDT_ISR( void ) interrupt WATCH_DOG_VECTOR_NUMBER
{
      // 清除看门狗定时器中断
      TA = 0xAA;
      TA = 0x55;
      WDIF = 0;
      
      // 清0看门狗定时器,相当于定时器从新计数
      WDT_CLEAR();

      //CommSendString( UART0, "Watchdog Timer interrupt occured.\n" );
}

#endif

⌨️ 快捷键说明

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