| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include "yc_wdt.h"
- #define WDT_ENABLE_BIT_Mask 6
- #define WDT_MODE_BIT_Mask 5
- #define SYSCTRL_WDT_EN_BIT_Mask 1
- /**************the value of feed dog************/
- #define COUNTER_RELOAD_KEY 0x5937
- void WDT_SetReload(uint32_t Reload)
- {
- uint32_t wdt_config = 0;
- _ASSERT(ISWDTRELOAD(Reload));
- wdt_config = WD_CONFIG;
- wdt_config &= 0xE0;
- wdt_config |= Reload;
- WD_CONFIG = wdt_config;
- }
- void WDT_ReloadCounter(void)
- {
- WD_KICK = COUNTER_RELOAD_KEY;
- }
- void WDT_Enable(void)
- {
- WD_CONFIG |= (1 << WDT_ENABLE_BIT_Mask);
- }
- void WDT_ModeConfig(WDT_ModeTypeDef WDT_Mode)
- {
- WD_CONFIG &= ~(1 << WDT_MODE_BIT_Mask);
- WD_CONFIG |= (WDT_Mode << WDT_MODE_BIT_Mask);
- if (WDT_CPUReset == WDT_Mode)
- {
- SYSCTRL_RST_EN |= (1 << 1);
- }
- else
- {
- SYSCTRL_RST_EN &= ~(1 << 1);
- }
- }
- ITStatus WDT_GetITStatus(void)
- {
- return (ITStatus)(WD_KICK & 1);
- }
- void WDT_ClearITPendingBit(void)
- {
- WD_CLEAR = 1;
- }
|