📄 watchdog.c
字号:
//================================================
// Watch-dog timer Interrupt Request Test
// Watchdog.c 24a0A
//================================================
#include <stdio.h>
#include "option.h"
#include "2460addr.h"
#include "2460lib.h"
#include "watchdog.h"
#include "PLL.h"
volatile int isWdtInt;
void Ch11_WDT_Test(void)
{
rINTSUBMSK &= ~(BIT_SUB_WDT);
rINTMSK &= ~(BIT_TIMER34_WDT); //Watch dog Interrupt service is available
pISR_TIMER34_WDT= (unsigned )Wdt_Batflt_Int;
isWdtInt = 0;
rWTCON = 0; // wdt reset & interrupt disable
rWTCON = ((PCLK/1000000-1)<<8) | (3<<3) | (1<<2); //Prescaler=0x2a(42),Clock division 128,Interrupt enable
rWTDAT = 7813 ;
rWTCNT = 7813 ;
rWTCON = rWTCON | (1<<5); //Watch-dog timer enable
printf("[ WDT Reset Test]\n");
printf("WDT Reset after wdt interrupt happened 5 times. \n");
while(isWdtInt != 5); // variable
// WDT reset enable
rWTCON = ((PCLK/1000000-1)<<8) |( 1<<5) | (3<<3) | (1);
rINTSUBMSK |= BIT_SUB_WDT;
rINTMSK |= BIT_TIMER34_WDT; //WDT Interrupt Mask
}
//---------------------------------------------------------------------
void __irq Wdt_Batflt_Int(void)
{
if(rSUBSRCPND & 0x100){
rSUBSRCPND = BIT_SUB_WDT;
printf("%d ",++isWdtInt);
}
ClearPending(BIT_TIMER34_WDT);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -