📄 ma_wdt.c
字号:
/*
*****************************************************************************
**
** Project : My project
**
** Component : LPC2106 (LPC2106)
**
** Modulename : WDT
**
** Filename : ma_wdt.c
**
** Abstract : This file implements a device driver for the WDT
** module.
**
** Compiler : IAR C compiler
**
** Date : 2004-05-26 17:21:26
**
** License no. : 9503-663-863-6224 Ivan
**
** Warning : This file has been automatically generated.
** Do not edit this file if you intend to regenerate it.
**
** This device driver was created by IAR MakeApp version
** 4.02A (NXP LPC210x: 4.00C) for the NXP LPC210x series of
** microcontrollers.
**
** (c)Copyright 2004 IAR Systems.
** Your rights to this file are explained in the IAR MakeApp
** License Agreement. All other rights reserved.
**
*****************************************************************************
*/
/*
**===========================================================================
** 1 GENERAL
** 1.1 Revisions
**
** Please read the IAR MakeApp for NXP LPC210x readme file
**
**
**===========================================================================
*/
/*
**===========================================================================
** 1.2 References
**
** No Identification Name or Description
** == =================== ================================
**
** 1 02/Oct/2003 NXP LPC210x Hardware Manual
**
**===========================================================================
*/
/*
**===========================================================================
** 2. INCLUDE FILES
** 2.1 Standard include files
**===========================================================================
*/
/*
**===========================================================================
** 2.2 Application include files
**===========================================================================
*/
#include "usercode.h" /* Usercode macros (see <template.h>) */
#include "ma_tgt.h" /* Target specific header file */
#include "ma_sfr.h" /* Special function register bitfield macros */
#include "iolpc210x.h" /* Defines Special function registers */
#include "ma_wdt.h" /* WDT Module driver header file */
/*
**===========================================================================
** 3. DECLARATIONS
** 3.1 Internal constants
**===========================================================================
*/
#define MA_WDMOD_WDT 0x00000000 /* Watchdog Mode Register */
#define MA_WDMOD_WDT_MASK 0x0000000F /* Used bits */
#define MA_WDTC_WDT 0x000000FF /* Watchdog Timer Constant Register */
#define MA_WDTC_WDT_MASK 0xFFFFFFFF /* Used bits */
#define MA_WDFEED_WDT 0x00000000 /* Watchdog Feed Sequence Register */
#define MA_WDFEED_WDT_MASK 0x000000FF /* Used bits */
#define MA_WDTV_WDT 0x000000FF /* Watchdog Timer Value Register */
#define MA_WDTV_WDT_MASK 0xFFFFFFFF /* Used bits */
/*
**===========================================================================
** 3.2 Internal macros
**===========================================================================
*/
/*
**===========================================================================
** 3.3 Internal type definitions
**===========================================================================
*/
/*
**===========================================================================
** 3.4 Global variables (declared as 'extern' in some header file)
**===========================================================================
*/
/*
**===========================================================================
** 3.5 Internal function prototypes (defined in Section 5)
**===========================================================================
*/
/*
**===========================================================================
** 3.6 Internal variables
**===========================================================================
*/
/*
**===========================================================================
** 4. GLOBAL FUNCTIONS (declared as 'extern' in some header file)
**===========================================================================
*/
void MA_Init_WDT( void )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Initialises the WDT module. Only sets those registers with values
** not equal to the power-on reset values.
**
** Parameters:
** None
**
** Returns:
** None
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
ENTER_MA_INIT_WDT;
/*--- Initialize registers ---*/
/*--- Handle user code on function exit ---*/
EXIT_MA_INIT_WDT;
} /* MA_Init_WDT */
void MA_Reset_WDT( void )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Resets the WDT module. Sets all registers.
**
** Parameters:
** None
**
** Returns:
** None
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
ENTER_MA_RESET_WDT;
/*--- Reset registers ---*/
WDTC = MA_WDTC_WDT;
WDMOD = ( WDMOD & ~MA_WDMOD_WDT_MASK ) | MA_WDMOD_WDT;
/*--- Handle user code on function exit ---*/
EXIT_MA_RESET_WDT;
} /* MA_Reset_WDT */
void MA_Start_WDT( void )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Starts the watchdog if enabled in MakeApp. Once started it requires
** a hardware reset or a Watchdog reset/interrupt to be disabled.
**
**
** Parameters:
** None
**
** Returns:
** None
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
ENTER_MA_START_WDT;
/*--- This will start the watchdog ---*/
WDFEED = 0xAA;
WDFEED = 0x55;
/*--- Handle user code on function exit ---*/
EXIT_MA_START_WDT;
} /* MA_Start_WDT */
void MA_Trig_WDT( void )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Reloads the watchdog with the time-out value. The watchdog should be
** fed within the time period determined by the time-out value to prevent
** reset.
**
** Parameters:
** None
**
** Returns:
** None
**
**---------------------------------------------------------------------------
*/
{
/*--- Handle user code on function entry ---*/
ENTER_MA_TRIG_WDT;
/*--- Reload time-out value to prevent reset ---*/
WDFEED = 0xAA;
WDFEED = 0x55;
/*--- Handle user code on function exit ---*/
EXIT_MA_TRIG_WDT;
} /* MA_Trig_WDT */
U8 MA_Check_WDT( void )
/*
**---------------------------------------------------------------------------
**
** Abstract:
** Check the watchdog status.
**
** Parameters:
** None
**
** Returns:
** TRUE if watchdog has expired. (WDTOF is set)
** FALSE if not.
**
**---------------------------------------------------------------------------
*/
{
U8 Status;
/*--- Handle user code on function entry ---*/
ENTER_MA_CHECK_WDT;
/*--- Check the watchdog status bit ---*/
if( WDMOD_bit.WDTOF )
{
Status = TRUE;
WDMOD_bit.WDTOF = 1; /* Clear flag */
}
else
{
Status = FALSE;
}
/*--- Handle user code on function exit ---*/
EXIT_MA_CHECK_WDT;
return Status;
} /* MA_Check_WDT */
/*
**===========================================================================
** 5. INTERNAL FUNCTIONS (declared in Section 3.5)
**===========================================================================
*/
/*
**===========================================================================
** END OF FILE
**===========================================================================
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -