Saturday, March 26, 2011

LPC2368 การดักจับสัญญาณ Interrupt และการกระโดดไปยัง routine ของ ARM7 Realview-Compiler

void sio_irq (void) __irq
{
  /* ใส่โค้ดที่ต้องการให้ทำงานเมื่อเกิด Interrupt */


T0IR = 0x00000001; //clear the interrupt flag
         // *The interrupt flag must be cleared to reset- 
                                                       //interruption. 

VICVectAddr=0;                                          //Acknowledge interrupt
}





int main (void)
{

   /*ใส่โค้ด อุปกรณ์ที่ต้องการให้ติดต่อกับ Interrupt */
   
   /*เซ็ทค่า สำหรับ Interrupt ตัวอย่างเช่น*/
   VICVectAddr7 = (unsigned long)sio_irq;
   //เมื่อมี interrupt จะกระโดดไปยัง sio_irq (void)
   VICVectCntl7  = 15;                                  //use it for UART1 interrupt
   VICIntEnable  = 1<<7;                             //enable UART1 interrupt.


// สังเกตตัวอักษร sio_irq จะเหมือนกับ routine ด้านบนเลย

}

1 comment:

  1. Hey dude,
    Can you explain how to set a FIQ interrupt??
    Can we set only one FIQ inrterrupt at a time??

    ReplyDelete