1 /* 2 * Copyright (c) 2006-2020, YICHIP Development Team 3 * @file yc_wdt.c 4 * @brief This file provides all the WDT firmware functions. 5 * 6 * Change Logs: 7 * Date Author Version Notes 8 * 2021-01-04 yangzhengfeng V1.0.0 the first version 9 */ 10 #include "yc_wdt.h" 11 12 /** 13 * @brief Set WDT Clk Div 14 * @param Wdtclkdiv: Wdtclkdiv value equal 1 to 16 15 * @retval none 16 */ WDT_CLKDIV(uint32_t Wdtclkdiv)17void WDT_CLKDIV(uint32_t Wdtclkdiv) 18 { 19 _ASSERT(IS_WDT_CLKDI(Wdtclkdiv)); 20 21 MWDT->CONFIG.bit.CLK_DIV = Wdtclkdiv; 22 } 23 24 /** 25 * @brief Set reload counter 26 * @param Reload: Reload counter equal to 2 to 31 27 * @retval none 28 */ WDT_SetReload(uint32_t Reload)29void WDT_SetReload(uint32_t Reload) 30 { 31 _ASSERT(IS_WDT_RELOAD(Reload)); 32 33 MWDT->CONFIG.bit.RELOAD = Reload; 34 } 35 36 /** 37 * @brief Feed the watchdog function 38 * @param none 39 * @retval none 40 */ WDT_ReloadCounter(void)41void WDT_ReloadCounter(void) 42 { 43 MWDT->KICK.reg = COUNTER_RELOAD_KEY; 44 } 45 46 /** 47 * @brief Enable WDT 48 * @param none 49 * @retval none 50 */ WDT_Enable(void)51void WDT_Enable(void) 52 { 53 MWDT->CONFIG.bit.EN = ENABLE; 54 } 55 56 /** 57 * @brief Set WDT mode 58 * @param WDT_Mode : Select the following values : 59 * WDT_CPUReset 60 * WDT_Interrupt. 61 * @retval none 62 * @description If Select WDT_CPUReset Mode,the bit for WDT RESET will be set;if 63 * Select WDT_Interrupt the bit for WDT RESET will 64 */ WDT_ModeConfig(WDT_ModeTypeDef WDT_Mode)65void WDT_ModeConfig(WDT_ModeTypeDef WDT_Mode) 66 { 67 _ASSERT(IS_WDT_MODE(WDT_Mode)); 68 69 if(WDT_CPUReset == WDT_Mode) 70 { 71 MWDT->CONFIG.bit.MODE = WDT_CPUReset; 72 MRSTGEN->RST_EN.bit.WDT = ENABLE; 73 } 74 else if(WDT_Interrupt == WDT_Mode) 75 { 76 MWDT->CONFIG.bit.MODE = WDT_Interrupt; 77 MRSTGEN->RST_EN.bit.WDT = DISABLE; 78 } 79 } 80 81 /** 82 * @brief Get interrupt Status 83 * @param none 84 * @retval SET:interrupt ocuured. 85 */ WDT_GetITStatus(void)86uint8_t WDT_GetITStatus(void) 87 { 88 uint16_t ret; 89 90 ret = MWDT->IRQ_STATUS.bit.STATE; 91 92 return ret ; 93 } 94 95 /** 96 * @brief Clear interrupt 97 * @param none 98 * @retval none 99 */ WDT_ClearITPendingBit(void)100void WDT_ClearITPendingBit(void) 101 { 102 MWDT->CLEAR.reg = 1; 103 } 104 105 /************************ (C) COPYRIGHT Yichip Microelectronics *****END OF FILE****/ 106