eint.c

来自「我写的针对lpc2141的ucos源码」· C语言 代码 · 共 90 行

C
90
字号
#include <LPC214X.h>
#include "type.h"
#include "irq.h"
#include "i2c.h"
#include "zlg7290.h"
#include "delay.h"

uint8 eint0_flag=FALSE;
uint8 eint2_flag=FALSE;
uint8 eint1_flag=FALSE;

void eint0_irq() __irq
{
	EXTINT|=0x01; //clear int flag
	
	eint0_flag=TRUE;

	// don't use printf() function in ISR!!
	//printf("eint2 \n");
	
	//zlg7290_key=i2c_getkey();
	
	
	VICVectAddr=0x0;	 
}

void eint0_init()
{
	PINSEL1=(~(0X00000003)&PINSEL1)|0x01; //P0.16 as EINT0
	//EXTMODE|=0x01; //edge sensitive for EINT2
	
	eint0_flag=FALSE;

	install_irq(EINT0_INT,(void *)eint0_irq);
}

void eint1_irq() __irq
{
	EXTINT|=0x02; //clear int flag
	
	eint1_flag=TRUE;

	// don't use printf() function in ISR!!
	//printf("eint2 \n");
	
	//zlg7290_key=i2c_getkey();
	
	
	VICVectAddr=0x0;	 
}

void eint1_init()
{
	PINSEL0=(~(0X00000003<<28)&PINSEL1)|0x02<<28; //P0.16 as EINT0
	//EXTMODE|=0x02; //edge sensitive for EINT2
	
	eint1_flag=FALSE;

	install_irq(EINT1_INT,(void *)eint1_irq);
}


void eint2_irq() __irq
{
	EXTINT|=0x04; //clear int flag
	
	eint2_flag=TRUE;

	// don't use printf() function in ISR!!
	//printf("eint2 \n");
	
	//zlg7290_key=i2c_getkey();
	
	
	VICVectAddr=0x0;	 
}

void eint2_init()
{
	PINSEL0|=0x80000000; //P0.15 as EINT2
	//EXTMODE|=0x04; //edge sensitive for EINT2
	
	eint2_flag=FALSE;

	install_irq(EINT2_INT,(void *)eint2_irq);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?