92 lines
1.8 KiB
C
92 lines
1.8 KiB
C
|
/*
|
|||
|
* Copyright (c) 2006-2018, RT-Thread Development Team
|
|||
|
*
|
|||
|
* SPDX-License-Identifier: Apache-2.0
|
|||
|
*
|
|||
|
* Change Logs:
|
|||
|
* Date Author Notes
|
|||
|
* 2019-05-06 sundm75 first version
|
|||
|
*/
|
|||
|
|
|||
|
#include "ls1c.h"
|
|||
|
#include "ls1c_wdog.h"
|
|||
|
|
|||
|
/*
|
|||
|
系统先配置看门狗使能位 WDT_EN;
|
|||
|
然后配置看门狗计数器的初始值 WDT_TIMER;
|
|||
|
当设置 WDT_SET 后,计数器开始减计数;
|
|||
|
当还没有减到 0 时,重置看门狗计数器,系统不会重启;
|
|||
|
当看门狗计数器减到 0 时,则系统重启。
|
|||
|
*/
|
|||
|
|
|||
|
static unsigned int WDT_timer = 0;
|
|||
|
|
|||
|
/* 暂时为空 */
|
|||
|
unsigned int Wdog_Init(void)
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 配置看门狗使能寄存器(WDT_EN) */
|
|||
|
unsigned int Wdog_Enable(void)
|
|||
|
{
|
|||
|
unsigned int ctrl;
|
|||
|
ctrl = (WDT_EN);
|
|||
|
ctrl |= 0x01;
|
|||
|
|
|||
|
WDT_EN = ctrl;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 配置看门狗失能寄存器(WDT_EN) */
|
|||
|
unsigned int Wdog_Disable(void)
|
|||
|
{
|
|||
|
unsigned int ctrl;
|
|||
|
ctrl = (WDT_EN);
|
|||
|
ctrl &= ~0x01;
|
|||
|
WDT_EN = ctrl;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 配置看门狗设置寄存器 (WDT_SET) */
|
|||
|
unsigned int Wdog_Set(void)
|
|||
|
{
|
|||
|
unsigned int ctrl;
|
|||
|
ctrl = (WDT_SET);
|
|||
|
ctrl |= 0x01;
|
|||
|
WDT_SET = ctrl;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 配置看门狗设置寄存器 (WDT_SET) */
|
|||
|
unsigned int Wdog_Reset(void)
|
|||
|
{
|
|||
|
unsigned int ctrl;
|
|||
|
ctrl = (WDT_SET);
|
|||
|
ctrl &= ~0x01;
|
|||
|
WDT_SET = ctrl;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 获得看门狗计数器(WDT_timer) 的值*/
|
|||
|
unsigned int Wdog_GetValue(void)
|
|||
|
{
|
|||
|
unsigned int cnt;
|
|||
|
cnt = (WDT_TIMER);
|
|||
|
return cnt;
|
|||
|
}
|
|||
|
|
|||
|
/* 配置看门狗计数器(WDT_timer)的值*/
|
|||
|
unsigned int Wdog_LoadValue(unsigned int cnt)
|
|||
|
{
|
|||
|
WDT_TIMER = cnt;
|
|||
|
WDT_timer = cnt;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/* 获得看门狗计数器设定值 */
|
|||
|
unsigned int Wdog_GetPreValue(void)
|
|||
|
{
|
|||
|
return WDT_timer;
|
|||
|
}
|