| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /***************************************************************
- *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd
- *文件名: lib_wdt.c
- *作 者: Liut
- *版 本: V1.00
- *日 期: 2017/02/04
- *描 述: 看门狗模块库函数
- *备 注: 适用于 ES8P508x芯片
- 本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。
- ***************************************************************/
- #include "lib_wdt.h"
- /*************************************
- 函数名:IWDT_Init
- 描 述:IWDT初始化
- 输入值:初始化结构体
- 返回值:无
- **************************************/
- void IWDT_Init(IWDT_InitStruType *WDT_InitStruct)
- {
- uint32_t tmp;
- if (WDT_InitStruct->WDT_Clock != WDT_CLOCK_PCLK)
- tmp = (uint32_t)(32 * WDT_InitStruct->WDT_Tms);
- else
- tmp = SystemCoreClock / 1000 * WDT_InitStruct->WDT_Tms;
- IWDT->LOAD.LOAD = tmp;
- IWDT->CON.CLKS = WDT_InitStruct->WDT_Clock;
- IWDT->CON.IE = WDT_InitStruct->WDT_IE;
- IWDT->CON.RSTEN = WDT_InitStruct->WDT_Rst;
- return;
- }
- /*************************************
- 函数名:IWDT_SetReloadValue
- 描 述:设置WDT重载的初值
- 输入值:初始值,32-bit无符号整数
- 返回值:无
- **************************************/
- void IWDT_SetReloadValue(uint32_t Value)
- {
- IWDT->LOAD.LOAD = Value;
- return;
- }
- /*************************************
- 函数名:IWDT_GetValue
- 描 述:获取WDT当前值
- 输入值:无
- 返回值:当前值
- **************************************/
- uint32_t IWDT_GetValue(void)
- {
- return (uint32_t)IWDT->VALUE.VALUE;
- }
- /*************************************
- 函数名:IWDT_GetFlagStatus
- 描 述:获取WDT中断状态
- 输入值:无
- 返回值:SET/RESET
- **************************************/
- FlagStatus IWDT_GetFlagStatus(void)
- {
- FlagStatus bitstatus = RESET;
- if (IWDT->RIS.WDTIF != RESET)
- bitstatus = SET;
- return bitstatus;
- }
- /*************************************
- 函数名:IWDT_GetITStatus
- 描 述:获取WDT使能中断状态
- 输入值:无
- 返回值:SET/RESET
- **************************************/
- FlagStatus IWDT_GetITStatus(void)
- {
- FlagStatus bitstatus = RESET;
- if (IWDT->CON.IE != RESET)
- bitstatus = SET;
- return bitstatus;
- }
- /*************************************
- 函数名:WWDT_Init
- 描 述:WWDT初始化
- 输入值:初始化结构体
- 返回值:无
- **************************************/
- void WWDT_Init(WWDT_InitStruType *WDT_InitStruct)
- {
- uint32_t tmp;
- if (WDT_InitStruct->WDT_Clock != WDT_CLOCK_PCLK)
- tmp = (uint32_t)(32 * WDT_InitStruct->WDT_Tms);
- else
- tmp = SystemCoreClock / 1000 * WDT_InitStruct->WDT_Tms;
- WWDT->LOAD.LOAD = tmp;
- WWDT->CON.CLKS = WDT_InitStruct->WDT_Clock;
- WWDT->CON.IE = WDT_InitStruct->WDT_IE;
- WWDT->CON.RSTEN = WDT_InitStruct->WDT_Rst;
- WWDT->CON.WWDTWIN = WDT_InitStruct->WDT_Win;
- return;
- }
- /*************************************
- 函数名:WWDT_SetReloadValue
- 描 述:设置WDT重载的初值
- 输入值:初始值,32-bit无符号整数
- 返回值:无
- **************************************/
- void WWDT_SetReloadValue(uint32_t Value)
- {
- WWDT->LOAD.LOAD = Value;
- return;
- }
- /*************************************
- 函数名:WWDT_GetValue
- 描 述:获取WDT当前值
- 输入值:无
- 返回值:当前值
- **************************************/
- uint32_t WWDT_GetValue(void)
- {
- return (uint32_t)WWDT->VALUE.VALUE;
- }
- /*************************************
- 函数名:WWDT_GetFlagStatus
- 描 述:获取WDT中断状态
- 输入值:无
- 返回值:SET/RESET
- **************************************/
- FlagStatus WWDT_GetFlagStatus(void)
- {
- FlagStatus bitstatus = RESET;
- if (WWDT->RIS.WWDTIF != RESET)
- bitstatus = SET;
- return bitstatus;
- }
- /*************************************
- 函数名:WWDT_GetIEStatus
- 描 述:获取WDT中断使能状态
- 输入值:无
- 返回值:SET/RESET
- **************************************/
- FlagStatus WWDT_GetITStatus(void)
- {
- FlagStatus bitstatus = RESET;
- if (WWDT->CON.IE != RESET)
- bitstatus = SET;
- return bitstatus;
- }
- /*************************END OF FILE**********************/
|