1 /** 2 ***************************************************************************** 3 * @file cmem7_wdg.c 4 * 5 * @brief CMEM7 watchdog source file 6 * 7 * 8 * @version V1.0 9 * @date 3. September 2013 10 * 11 * @note 12 * 13 ***************************************************************************** 14 * @attention 15 * 16 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 17 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 18 * TIME. AS A RESULT, CAPITAL-MICRO SHALL NOT BE HELD LIABLE FOR ANY DIRECT, 19 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 20 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 21 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 22 * 23 * <h2><center>© COPYRIGHT 2013 Capital-micro </center></h2> 24 ***************************************************************************** 25 */ 26 27 #include "cmem7_wdg.h" 28 wdg_GetClock()29static uint32_t wdg_GetClock() { 30 return SYSTEM_CLOCK_FREQ / (1 << (GLOBAL_CTRL->CLK_SEL_0_b.WDG_CLK + 1)); 31 } 32 WDG_DeInit(void)33void WDG_DeInit(void){ 34 SOFT_RESET->SOFTRST_b.WDT_n = 0; 35 SOFT_RESET->SOFTRST_b.WDT_n = 1; 36 } 37 WDG_Init(uint8_t trigger,uint16_t ResetMillSecond)38void WDG_Init(uint8_t trigger, uint16_t ResetMillSecond) { 39 assert_param(IS_WDG_TRIGGER_MODE(trigger)); 40 41 WDG->INT_CTRL_b.TRIGGER_MODE = trigger; 42 WDG->LEN = ((uint64_t)wdg_GetClock()) * ResetMillSecond / 1000; 43 } 44 WDG_ITConfig(uint8_t Int,BOOL Enable)45void WDG_ITConfig(uint8_t Int, BOOL Enable) { 46 assert_param(IS_WDG_INT(Int)); 47 48 WDG->CTRL_b.INT_LEN = Int; 49 WDG->INT_CTRL_b.MASK = !Enable; 50 } 51 WDG_GetITStatus()52BOOL WDG_GetITStatus() { 53 return (WDG->INT_STA_b.STA == 1) ? TRUE : FALSE; 54 } 55 WDG_ClearITPendingBit()56void WDG_ClearITPendingBit() { 57 WDG->INT_STA_b.STA = 1; 58 } 59 WDG_Cmd(BOOL Enable)60void WDG_Cmd(BOOL Enable) { 61 WDG->CTRL_b.EN = Enable; 62 } 63 64