⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 k60-keil

📁 K60-Keil版本(下载安装MDK4.23)
💻
字号:
/*============================================================================
文件名称:wdog.c
功能概要:K60 wdog
版权所有:卿丞数码
=============================================================================*/
#include <MK60N512MD100.h>              /* MK60N512MD100 Definitions          */
#include "wdog.h"

/*============================================================================
函数名称:WDogOpen
函数返回:无
参数说明:                     
功能概要:注意:看门狗的每一次设置需要间隔一个复位周期
版权所有:卿丞数码
=============================================================================*/
void WDogOpen(void)
{
//	__disable_irq();
    WDOG->UNLOCK=(uint16_t)0xC520u;
    WDOG->UNLOCK=(uint16_t)0xD928u;  //看门狗钥匙
    /*在这里大部分选择默认配置,时钟来源为bus clock*/
	WDOG->PRESC=WDOG_PRESC_PRESCVAL(0);  //设置分频器  
	WDOG->TOVALH=(90000*30)>>16;	   //定时2MS
	WDOG->TOVALL=(90000*30)%65536; //设置超时时间值90,000为1ms
//	WDOG->TOVALH=(uint16_t)0x02aeu;
//	WDOG->TOVALL=(uint16_t)0xa540u; //设置超时时间值90,000,000
	WDOG->STCTRLH|=(uint16_t)0x0001u;//开启看门狗

//	__enable_irq();
}


/*============================================================================
函数名称:WDogClose
函数返回:无
参数说明:                     
功能概要:关闭看门狗
NOTE: DO NOT SINGLE STEP THROUGH THIS FUNCTION!!! 
There are timing requirements for the execution of the unlock.If
you single step through the code you will cause the CPU to reset.
This sequence must execute within 20 clock cycles, so disable
interrupts will keep the code atomic and ensure the timing.
版权所有:卿丞数码
===============================================================================*/
void WDogClose(void)
{
	__disable_irq();
    WDOG->UNLOCK=(uint16_t)0xC520u;
    WDOG->UNLOCK=(uint16_t)0xD928u;   	//看门狗钥匙
	WDOG->STCTRLH&=~(uint16_t)0x0001u;	//关闭看门狗
	__enable_irq();
}
/*============================================================================
函数名称:WDogFeed
函数返回:无
参数说明:                     
功能概要:喂狗,防止系统复位
版权所有:卿丞数码
=============================================================================*/
void WDogFeed(void)
{
	__disable_irq();				  	//喂狗前关中断
    WDOG->REFRESH=(uint16_t)0xA602u; 
	WDOG->REFRESH=(uint16_t)0xB480u; 	//喂看门狗
	__enable_irq();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -