You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

166 lines
4.2 KiB

/*********************************************************
*Copyright (C), 2015, Shanghai Eastsoft Microelectronics Co., Ltd.
*文件名: lib_wwdt.c
*作 者: AE Team
*版 本: V1.01
*日 期: 2021/01/12
*描 述: WDT模块库函数
*备 注:
本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。
**********************************************************/
#include "lib_wdt.h"
#include "system_ES8P5066.h"
/************************************************WWDT*************************************************/
/****************************************
函数名:WWDT_Init
描 述:UART初始化
输入值:初始化结构体
返回值:无
**************************************/
void WWDT_Init(WWDT_InitStruType *WWDT_InitStruct)
{
uint32_t tmp;
WWDT_RegUnLock();
if (WWDT_InitStruct->WDT_Clock != WWDT_CLOCK_PCLK)
tmp = (uint32_t)(32 * WWDT_InitStruct->WDT_Tms);
else
tmp = SystemCoreClock / 1000 * WWDT_InitStruct->WDT_Tms;
WWDT->LOAD.LOAD = tmp;
WWDT->CON.CLKS = WWDT_InitStruct->WDT_Clock;
WWDT->CON.IE = WWDT_InitStruct->WDT_IE;
WWDT->CON.RSTEN = WWDT_InitStruct->WDT_Rst;
WWDT->CON.WWDTWIN = WWDT_InitStruct->WDT_Win;
WWDT_RegLock();
return;
}
/*************************************
函数名:WWDT_SetReloadValue
描 述:设置WWDT重载的初值
输入值:初始值,32-bit无符号整数
返回值:无
**************************************/
void WWDT_SetReloadValue(uint32_t Value)
{
WWDT->LOAD.LOAD = Value;
return;
}
/*************************************
函数名:WWDT_GetValue
描 述:获取WWDT当前值
输入值:无
返回值:当前值
**************************************/
uint32_t WWDT_GetValue(void)
{
return (uint32_t)WWDT->VALUE.Word;
}
/*************************************
函数名:WWDT_GetFlagStatus
描 述:获取WWDT中断状态
输入值:无
返回值:SET/RESET
**************************************/
FlagStatus WWDT_GetFlagStatus(void)
{
FlagStatus bitstatus = RESET;
if (WWDT->RIS.WWDTIF != RESET)
bitstatus = SET;
return bitstatus;
}
/************************************************IWDT*************************************************/
/*************************************
函数名:IWDT_Init
描 述:IWDT初始化
输入值:初始化结构体
返回值:无
**************************************/
void IWDT_Init(IWDT_InitStruType *IWDT_InitStruct)
{
uint32_t tmp;
IWDT_RegUnLock();
if (IWDT_InitStruct->WDT_Clock != IWDT_CLOCK_PCLK)
tmp = (uint32_t)(32 * IWDT_InitStruct->WDT_Tms);
else
tmp = SystemCoreClock / 1000 * IWDT_InitStruct->WDT_Tms;
IWDT->LOAD.LOAD = tmp;
IWDT->CON.CLKS = IWDT_InitStruct->WDT_Clock;
IWDT->CON.IE = IWDT_InitStruct->WDT_IE;
IWDT->CON.RSTEN = IWDT_InitStruct->WDT_Rst;
IWDT_RegLock();
return;
}
/*************************************
函数名:IWDT_SetReloadValue
描 述:设置IWDT重载的初值
输入值:初始值,32-bit无符号整数
返回值:无
**************************************/
void IWDT_SetReloadValue(uint32_t Value)
{
IWDT->LOAD.LOAD = Value;
return;
}
/*************************************
函数名:IWDT_GetValue
描 述:获取IWDT当前值
输入值:无
返回值:当前值
**************************************/
uint32_t IWDT_GetValue(void)
{
return (uint32_t)IWDT->VALUE.VALUE;
}
/*************************************
函数名:IWDT_GetFlagStatus
描 述:获取IWDT中断状态
输入值:无
返回值:SET/RESET
**************************************/
FlagStatus IWDT_GetFlagStatus(void)
{
FlagStatus bitstatus = RESET;
if (IWDT->RIS.WDTIF != RESET)
bitstatus = SET;
return bitstatus;
}
/*************************************
函数名:IWDT_GetITStatus
描 述:获取IWDT使能中断状态
输入值:无
返回值:SET/RESET
**************************************/
FlagStatus IWDT_GetITStatus(void)
{
FlagStatus bitstatus = RESET;
if (IWDT->CON.IE != RESET)
bitstatus = SET;
return bitstatus;
}