/*Copyright (C), 2024-2030
*文件名:	USER.c
*版  本:	Ver1.00
*日  期:	2025/04/30
*描  述:	常用函数定义
*备  注:     
**********************************************************/
#include "USER.h"

#include "BL51F003T.h"	
#include "stdio.h"
#include "string.h"
/**********************************************************/
/**
	* @brief  wdt中断服务
  * @param  None
  * @retval None
	*/

void Wdt_Isr() interrupt 4
{
	if(WDTFLG & 0x02)
	{
		printf("\n------WDT INT------");
		WDT_OPEN;				//WDT刷新
		P00_REV;				//P00翻转
	}
}
void WDT_INIT(void)
{
#if (WDT_EXINT == 1)//WDT中断
	WDT_INT_500MS;		//WDT中断，时间配置为500ms
	WDT_OPEN;					//WDT刷新
	INT_WDT;					//WDT中断使能
#endif
	
#if (WDT_REST == 1)//WDT复位
	WDT_RST_512MS;		//WDT复位，时间配置为512ms
	WDT_OPEN;					//WDT刷新
	
#endif
}
/**
	* @brief  wkt中断服务
  * @param  None
  * @retval None
	*/
void wkt_isr() interrupt 5 
{
	if(WKTCON & 0x10)
	{
		WKTCON &= 0xEF;	//清WKT中断标志
		P01_REV;				//P01翻转
		printf("\n------WKT INT------");
	}
}
/*WKT_LRC定时函数*/
void WKT_LRC_ms(unsigned int i)
{
	WKTCON = WKTCON&0xFC;
	WKTCON |= ((i-1)&0x03);
	WKTSS = (i-1)>>2;
}
void WKT_INIT(void)
{
#if (WKT_LRC == 1)  		//WKT中断,时钟源为LRC
	WKT_LRC_OPEN;					//WDT使能，时钟为LRC
	WKT_LRC_ms(500);			//WKT计时500ms
	INT_WKT;							//WKT中断使能
#endif
	
#if (WKT_LOSC == 1) 		//WKT中断,时钟源为LOSC
	P00_FUN_LXO;					//P00晶振口LXO配置
	P01_FUN_LXI;					//P01晶振口LXI配置
	OPEN_LOSC;						//LOSC配置打开
	WKT_LOSC_OPEN;				//WDT使能，时钟为LOSC
	WKT_LOSC_1000MS;			//WKT计时1s，如需定时请使用1s定时，48H误差约1-2s
	INT_WKT;							//WKT中断使能
#endif
}




