#include "bat32g137.h"
#include "EventRecorder.h" // Keil.ARM Compiler::Compiler:Event Recorder
#include "stdio.h"
// 看门狗时钟源为15K的 fil
uint32_t i;
int main(void)
{
SystemCoreClockUpdate();
EventRecorderInitialize(0,0);
EventRecorderStart();
PORT->PM0 &= ~(1<<5);
PORT->PMC0 &= ~(1<<5);
while(1)
{
}
}
void NMI_Handler(void)
{
//printf("wdt = %08ld\n",i++);
WDT->WDTE = 0xACU; /* restart watchdog timer */
if(PORT->P0 & (1<<5))
{
PORT->P0 &= ~(1<<5);
EventStartA(0);
}
else
{
PORT->P0 |= (1<<5);
EventStopA(0);
}
}
1.看门狗使用的时钟源为内部的低速时钟15K
2.看门狗中断入口为NMI,这个很特别。
3.注意75% 是开启窗口看门狗功能,如果在溢出时间75% 以内复位看门狗计数器就会造成复位。
100% 随时都可以复位看门狗,可以理解没有窗口看门狗功功能。