📄 wdt.c
字号:
/*****************************************************************************
* wdt.c: Watchdog C file for NXP LPC23xx/24xx Family Microprocessors
*
* Copyright(C) 2006, NXP Semiconductor
* All rights reserved.
*
* History
* 2006.07.20 ver 1.00 Prelimnary version, first Release
*
*****************************************************************************/
#include "LPC2468.h" /* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "timer.h"
#include "wdt.h"
volatile DWORD wdt_counter;
/*****************************************************************************
** Function name: WDTHandler
**
** Descriptions: Watchdog timer interrupt handler
**
** parameters: None
** Returned value: None
**
*****************************************************************************/
__irq __arm void WDTHandler(void)
{
WDMOD &= ~WDTOF; /* clear the time-out terrupt flag */
__enable_interrupt(); /* handles nested interrupt */
wdt_counter++;
__disable_interrupt();
VICVectAddr = 0; /* Acknowledge Interrupt */
}
/*****************************************************************************
** Function name: WDTInit
**
** Descriptions: Initialize watchdog timer, install the
** watchdog timer interrupt handler
**
** parameters: None
** Returned value: true or false, return false if the VIC table
** is full and WDT interrupt handler can be
** installed.
**
*****************************************************************************/
DWORD WDTInit( void )
{
wdt_counter = 0;
if ( install_irq( WDT_INT, (void *)WDTHandler, HIGHEST_PRIORITY ) == FALSE )
{
return (FALSE);
}
WDTC = WDT_FEED_VALUE; // WDT_FEED_VALUE=0x003FFFFF,计数器初值为4M
WDMOD = WDEN | WDRESET; /* once WDEN is set, the WDT will start after feeding */
// WDMOD = WDEN;
WDFEED = 0xAA; /* Feeding sequence */
WDFEED = 0x55;
return( TRUE );
}
/*****************************************************************************
** Function name: WDTFeed
**
** Descriptions: Feed watchdog timer to prevent it from timeout
**
** parameters: None
** Returned value: None
**
*****************************************************************************/
void WDTFeed( void )
{
WDFEED = 0xAA; /* Feeding sequence */
WDFEED = 0x55;
return;
}
/******************************************************************************
** End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -