www.pudn.com > lpc213X_C_application.rar > main.c, change:2005-01-19,size:3042b


/****************************************Copyright (c)************************************************** 
**                               Guangzou ZLG-MCU Development Co.,LTD. 
**                                      graduate school 
**                                 http://www.zlgmcu.com 
** 
**--------------File Info------------------------------------------------------------------------------- 
** File name:			main.c 
** Last modified Date:  2004-09-16 
** Last Version:		1.0 
** Descriptions:		The main() function example template 
** 
**------------------------------------------------------------------------------------------------------ 
** Created by:			Chenmingji 
** Created date:		2004-09-16 
** Version:				1.0 
** Descriptions:		The original version 
** 
**------------------------------------------------------------------------------------------------------ 
** Modified by: 
** Modified date: 
** Version: 
** Descriptions: 
** 
********************************************************************************************************/ 
#include "config.h" 
 
#define	BEEP	1 << 7		// P0.7控制蜂鸣器BEEP,低电平蜂鸣 
#define WDT 	0			// WDT中断号 
 
 
/* 
********************************************************************************************************* 
** 函数名称 :WDT_Int() 
** 函数功能 :看门狗中断服务程序 
** 入口参数 :无 
** 出口参数 :无 
********************************************************************************************************* 
*/ 
void __irq WDT_Int (void) 
{ 
	uint32 i; 
	 
	IO0CLR = BEEP;						// 蜂鸣器报警 
	for (i=0; i<0x7fffff; i++); 
	IO0SET = BEEP; 
	 
	VICIntEnClr = 1 << WDT;				// 看门狗喂狗中断,只能通过禁止VIC中断的方法返回 
} 
 
/* 
********************************************************************************************************* 
** 函数名称 :main() 
** 函数功能 :错误喂狗产生WDT中断演示 
** 调试说明 :需要在startup.s文件中使能IRQ中断 
********************************************************************************************************* 
*/ 
int main (void) 
{ 
	uint32 i; 
	 
	PINSEL0 = 0x00000000;				// 管脚连接GPIO 
	IO0DIR  = BEEP;						// 设置LED9和BEEP控制口输出 
	IO0SET  = BEEP; 
	 
	IRQEnable();						// 使能IRQ中断 
	 
	/* 中断初始化 */ 
	VICIntSelect = 0x00000000;			// 连接所有中断到向量中断 
	VICVectCntl0 = 0x20 | WDT;			// 分配WDT中断到slot0 
	VICVectAddr0 = (uint32)WDT_Int;		// 中断服务程序地址 
	WDMOD = 0x00;						// 清除看门狗超时位WDTOF 
	VICIntEnable = 1 << WDT;			// 中断使能 
	 
	/* 初始化看门狗 */ 
	WDTC  = 0x606;						// 设定看门狗超时值 
	WDMOD = 0x01;						// 看门狗中断使能 
    WDFEED = 0xAA;						// 第一次喂狗启动WDT 
	WDFEED = 0x55; 
 
    /* 错误喂狗 */ 
   	for(i = 0; i < 0xFF; i++); 
   	WDFEED = 0xAA; 
	WDFEED = 0x54; 
 
	while (1); 
    return 0; 
}/********************************************************************************************************* 
**                            End Of File 
********************************************************************************************************/