Sunday, May 29, 2011

LPC2368 GPIO-0 Interrupt

image by free.in.th
ฝากรูป

/******************************************************************************/
/****                               LPC2368 GPIO-0 Interrupt example by Musaho                            ****/
/******************************************************************************/



void Sensing_irq(void) __irq;

int main(void){

PINSEL1       = (3UL<<16);        //xxxx xxxx xxxx xx00 xxxx xxxx xxxx xxxx ,select to GPIO port P0.24
PINMODE1  = ~(3UL<<16);      // Resistor is pull up. 
PCLKSEL1   = ~(3UL<<2);        //PCLK_GPIO=CCLK/4
FIO0DIR       = ~(1UL<<24);        // Bit-24 is set to input.

IO0_INT_EN_F = (1UL<<24); //bit-24 are set up for the Falling edge interrupt.


VICVectAddr17     = (unsigned)Sensing_irq;
VICVectPriority17 =  0x00000000;   //IENT3
VICIntEnable     |= (1UL<<17); // select IENT3 interrupt

while(1);


}


void Sensing_irq(void) __irq //Sensing interrupt P0.24
{

/****************************************************************/
/*                                       Your Interrupt program is here                                       */
/****************************************************************/


IO0_INT_CLR = (1UL<<24); //clear the GPIO-0, P0.24 interrupt flag
VICVectAddr = 0x00000000; // *Dummy Write to signal end of Interrupt.
return;
}