2024-04-03 10:05:55 +08:00

47 lines
2.2 KiB
C

/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/* --- Web: www.STCMCUDATA.com ---------------------------------------*/
/* --- QQ: 800003751 -------------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
/*---------------------------------------------------------------------*/
#include "WDT.h"
//========================================================================
// 函数: void WDT_Inilize(WDT_InitTypeDef *WDT)
// 描述: 看门狗初始化程序.
// 参数: WDT: 结构参数,请参考WDT.h里的定义.
// 返回: none.
// 版本: V1.0, 2020-09-16
//========================================================================
void WDT_Inilize(WDT_InitTypeDef *WDT) {
if (WDT->WDT_Enable == ENABLE) WDT_CONTR = D_EN_WDT; // 使能看门狗
// 看门狗定时器时钟分频系数
// WDT_SCALE_2,WDT_SCALE_4,WDT_SCALE_8,WDT_SCALE_16,WDT_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
WDT_PS_Set(WDT->WDT_PS);
if (WDT->WDT_IDLE_Mode == WDT_IDLE_STOP)
WDT_CONTR &= ~0x08; // IDLE模式停止计数
else
WDT_CONTR |= 0x08; // IDLE模式继续计数
}
/******************** INT配置 ********************/
void WDT_config(void) {
WDT_InitTypeDef WDT_InitStructure; // 结构定义
WDT_InitStructure.WDT_Enable = ENABLE; // 中断使能 ENABLE或DISABLE
WDT_InitStructure.WDT_IDLE_Mode = WDT_IDLE_STOP; // IDLE模式是否停止计数 WDT_IDLE_STOP,WDT_IDLE_RUN
WDT_InitStructure.WDT_PS = WDT_SCALE_16; // 看门狗定时器时钟分频系数 ≈524ms
WDT_Inilize(&WDT_InitStructure); // 初始化
}
/********************* 清除看门狗函数 *************************/
void WDT_Clear(void) {
WDT_CONTR |= D_CLR_WDT; // 喂狗
}