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
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;
|
|
}
|
|
|
|
|