📄 wdg.h
字号:
/****************************************Copyright (c)**************************************************
**
**
** 杭州央海软件科技有限公司
**
** http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: wdg.H
** 创 建 人: 罗辉联
** 创建日期: 2006年5月10日
** 描 述: 该文件包含了WDG相关功能函数和函数原型
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: 罗辉联
** 版 本: 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 //决定是否编译该文件
/************************************** 宏定义,常量定义 ******************************************/
/************************************** 枚举类型定义 *******************************************/
/************************************** 结构体类型定义 ******************************************/
/********************************** 全局外部函数原型声明 *****************************************/
/*********************************************************************************************************
;** 函数名称: WDG_Enable
;** 功能描述: Enable the Watchdog Mode
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_Enable(void)
{
WDG_CR = 0x01;
}
/*********************************************************************************************************
;** 函数名称: WDG_Enable
;** 功能描述: Enable the Watchdog Mode
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_Disable(void)
{
WDG_CR &= ~0x01;
}
/*********************************************************************************************************
;** 函数名称: WDG_CounterRefresh
;** 功能描述: 更新Watchdog Counter,否则系统将重启
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 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)
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 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)
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_CounterReloadUpdate(UWORD16 preload_value )
{
WDG_VR = preload_value;
}
/*********************************************************************************************************
;** 函数名称: WDG_PeriodValueConfig
;** 功能描述: 根据定时时间设置prescaler和counter reload 值
;**
;** 参 数: time:Amount of time (us) needed
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_PeriodValueConfig (UWORD32 time);
/*********************************************************************************************************
** 函数名称: wdg_init
** 功能描述: watchdog 初始化,系统复位时间大约0.8ms
**
** 参 数: None
**
** 返 回 值: None
**
** 作 者: 罗辉联
** 日 期: 2006年6月21日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 罗辉联
** 日 期: 2006年6月21日
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void wdg_init(void);
/*********************************************************************************************************
;** 函数名称: WDG_WatchdogStart
;** 功能描述: 使用WDG的看门狗功能,根据装载的计数值设置复位门限
;**
;** 参 数: reset_time:看门狗复位时间值
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_WatchdogStart(UWORD32 reset_time);
/*********************************************************************************************************
;** 函数名称: WDG_TimerStart
;** 功能描述: 使用WDG的定时器功能,根据装载的计数值立即启动定时器
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_TMStart(UWORD32 time);
/*********************************************************************************************************
;** 函数名称: WDG_TMStop
;** 功能描述: 停止WDG的定时器
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void WDG_TMStop(void);
/*********************************************************************************************************
;** 函数名称: WDG_CounterfConfig
;** 功能描述: 当WDG工作在定时模式时,停止或启动watchdog定时计数器
;**
;** 参 数: preload_value:Pre-load data value (16 bit)
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 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
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 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模式时,通过该函数清除计数结束标志
;**
;** 参 数: 无
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void WDG_ECFlagClear (void)
{
WDG_SR = 0x0000;
}
/*********************************************************************************************************
;** 函数名称: WDG_GetECFlag
;** 功能描述: 当WDG不在WDG模式时,通过该函数获得WDG定时器是否计数结束
;**
;** 参 数: 无
;**
;** 返 回 值: WDG EC位值
;**
;** 作 者: 罗辉联
;** 日 期: 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 + -