📄 wdg.h
字号:
/****************************************Copyright (c)**************************************************
**
** STR710 development team
**
**
** http://www.appchip.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: wdg.H
** 创 建 人: lhl
** 创建日期: 2006年5月10日
** 描 述: 该文件包含了WDG相关功能函数和函数原型
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: lhl
** 版 本: V1.0
** 日 期: 2006年5月10日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __WDG_H
#define __WDG_H
#include "rccu.h"
#include "cpu_cfg.h"
#ifdef __cplusplus
extern "C" {
#endif
#if EN_ARM_WDG > 0 //决定是否编译该文件
/************************************** 宏定义,常量定义 ******************************************/
#define WDG_PRESCALE_RELOAD_CONVERT_VALUE 838800
#define TIMER_PRESCALE_RELOAD_CONVERT_VALUE 838800
/************************************** 枚举类型定义 *******************************************/
/************************************** 结构体类型定义 ******************************************/
/********************************** 全局外部函数原型声明 *****************************************/
/*********************************************************************************************************
;** 函数名称: WDG_Enable
;** 功能描述: Enable the Watchdog Mode
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_Enable(void);
/*********************************************************************************************************
;** 函数名称: WDG_Enable
;** 功能描述: Enable the Watchdog Mode
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_Disable(void)
{
WDG_CR &= ~0x01;
}
/*********************************************************************************************************
;** 函数名称: WDG_CounterRefresh
;** 功能描述: 更新Watchdog Counter,否则系统将重启
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_CounterRefresh ( void )
{
//write the first value in the key register
WDG_KR = 0xA55A;
//write the consecutive value
WDG_KR = 0x5AA5;
}
/*********************************************************************************************************
;** 函数名称: WDG_PrescalerConfig
;** 功能描述: Set the counter prescaler value.Divide the counter clock by (Prescaler + 1)
;**
;** 参 数: prescaler:Prescaler data value (8 bit)
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_PrescalerConfig (UWORD8 prescaler)
{
WDG_PR = prescaler;
}
/*********************************************************************************************************
;** 函数名称: WDG_CounterReloadUpdate
;** 功能描述: Update the counter pre-load value.
;**
;** 参 数: preload_value:Pre-load data value (16 bit)
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_CounterReloadUpdate(UWORD16 preload_value )
{
WDG_VR = preload_value;
}
/*********************************************************************************************************
;** 函数名称: WDG_FeedDogConfig
;** 功能描述: 根据定时时间设置prescaler和counter reload 值
;**
;** 参 数: time:Amount of time (us) needed
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_FeedDogConfig (UWORD32 time);
/*********************************************************************************************************
;** 函数名称: WDG_TimerStart
;** 功能描述: 使用WDG的定时器功能,根据装载的计数值立即启动定时器
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_TMStart(void);
/*********************************************************************************************************
;** 函数名称: WDG_CounterfConfig
;** 功能描述: 当WDG工作在定时模式时,停止或启动watchdog定时计数器
;**
;** 参 数: preload_value:Pre-load data value (16 bit)
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_CounterfConfig (CONFIG_STATUS_T new_status)
{
if (new_status == ENABLE)
WDG_CR = 0x0002;
else
WDG_CR &= ~0x0002;
}
/*********************************************************************************************************
;** 函数名称: WDG_ECITConfig
;** 功能描述: Enable or Disable the end of count interrupt
;**
;** 参 数: new_status: ENABLE or DISABLE
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_ECITConfig(CONFIG_STATUS_T new_status)
{
if (new_status == ENABLE)
WDG_MR |= 0x0001;
else
WDG_MR &= ~0x0001;
}
/*********************************************************************************************************
;** 函数名称: WDG_ECFlagClear
;** 功能描述: 当WDG不在WDG模式时,通过该函数清除计数结束标志
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_ECFlagClear (void)
{
WDG_SR = 0x0000;
}
/*********************************************************************************************************
;** 函数名称: WDG_GetECFlag
;** 功能描述: 当WDG不在WDG模式时,通过该函数获得WDG定时器是否计数结束
;**
;** 参 数: 无
;**
;** 返 回 值: WDG EC位值
;**
;** 作 者: lhl
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline UWORD16 WDG_GetECFlag(void)
{
return WDG_SR;
}
#endif //EN_ARM_WDG > 0
#ifdef __cplusplus
}
#endif
#endif // __WDG_H
/****************************************end of file*******************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -