您的位置:首页 > 其它

LPC1768之外部中断

2012-04-22 21:33 197 查看
/*************************************************************************************
*	main.c:  the main file
*	NXP --> LPC1768
*
*
*	Author	:	light
*	Date	:	2012-4-22
*
*	Email	:	lightwu@hotmail.com
***************************************************************************************/

#include <LPC17XX.h>
#include "GPIO.h"

/********************************************************************************
** Descriptions			:external interrupt initialze
**
** parameters			:None
** Returned value		:None
*********************************************************************************/
void ExternIntInit(void)
{
LPC_PINCON->PINSEL4 |=  (1<<20);				// p2.10设置为外部中断
LPC_PINCON->PINSEL4 &= ~(1<<21);
LPC_GPIO2->FIODIR   &= ~(1<<10);	 			// p2.10 设置为输入

NVIC_EnableIRQ(EINT3_IRQn);              		/* enable irq in nvic              */
//EINT3和GPIO中断共用
LPC_GPIOINT->IO2IntEnR |= (1<<10);				//上升沿触发
}
/********************************************************************************
** Descriptions			:EINT0 interrupt
**
** parameters			:None
** Returned value		:None
*********************************************************************************/
void EINT3_IRQHandler(void)
{
LPC_GPIOINT->IO2IntClr |= (1<<10);				//将中断清零,否则一直在中断中无法退出

LedNOn(3);
DelayMs(1000);

LedNOff(3);
DelayMs(1000);
}

/*----------------------------------------------------------------------------
The main Function
*----------------------------------------------------------------------------*/
int main(void)
{
int loc;

SystemInit();
ExternIntInit();
LedInit();

while(1)
{

for(loc=7;loc>=0;loc--)
{
/*			LedNOn(loc);
DelayMs(1000);

LedNOff(loc);
DelayMs(1000);
*/
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: