1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2019-05-06 sundm75 first version 9 */ 10 11 #include "ls1c.h" 12 #include "ls1c_wdog.h" 13 14 /* 15 系统先配置看门狗使能位 WDT_EN; 16 然后配置看门狗计数器的初始值 WDT_TIMER; 17 当设置 WDT_SET 后,计数器开始减计数; 18 当还没有减到 0 时,重置看门狗计数器,系统不会重启; 19 当看门狗计数器减到 0 时,则系统重启。 20 */ 21 22 static unsigned int WDT_timer = 0; 23 24 /* 暂时为空 */ Wdog_Init(void)25unsigned int Wdog_Init(void) 26 { 27 return 0; 28 } 29 30 /* 配置看门狗使能寄存器(WDT_EN) */ Wdog_Enable(void)31unsigned int Wdog_Enable(void) 32 { 33 unsigned int ctrl; 34 ctrl = (WDT_EN); 35 ctrl |= 0x01; 36 37 WDT_EN = ctrl; 38 return 0; 39 } 40 41 /* 配置看门狗失能寄存器(WDT_EN) */ Wdog_Disable(void)42unsigned int Wdog_Disable(void) 43 { 44 unsigned int ctrl; 45 ctrl = (WDT_EN); 46 ctrl &= ~0x01; 47 WDT_EN = ctrl; 48 return 0; 49 } 50 51 /* 配置看门狗设置寄存器 (WDT_SET) */ Wdog_Set(void)52unsigned int Wdog_Set(void) 53 { 54 unsigned int ctrl; 55 ctrl = (WDT_SET); 56 ctrl |= 0x01; 57 WDT_SET = ctrl; 58 return 0; 59 } 60 61 /* 配置看门狗设置寄存器 (WDT_SET) */ Wdog_Reset(void)62unsigned int Wdog_Reset(void) 63 { 64 unsigned int ctrl; 65 ctrl = (WDT_SET); 66 ctrl &= ~0x01; 67 WDT_SET = ctrl; 68 return 0; 69 } 70 71 /* 获得看门狗计数器(WDT_timer) 的值*/ Wdog_GetValue(void)72unsigned int Wdog_GetValue(void) 73 { 74 unsigned int cnt; 75 cnt = (WDT_TIMER); 76 return cnt; 77 } 78 79 /* 配置看门狗计数器(WDT_timer)的值*/ Wdog_LoadValue(unsigned int cnt)80unsigned int Wdog_LoadValue(unsigned int cnt) 81 { 82 WDT_TIMER = cnt; 83 WDT_timer = cnt; 84 return 0; 85 } 86 87 /* 获得看门狗计数器设定值 */ Wdog_GetPreValue(void)88unsigned int Wdog_GetPreValue(void) 89 { 90 return WDT_timer; 91 } 92