안녕하세요.

 

EZBOOT에서 외부 인터럽트를 사용하고자 다음과 같이 함수를 만들었습니다.

 

void Init_RTS_Interrupt(void)
{
 int RegData = 0 ;

 // Get GPH1 Control Reg to EINT11 ~ 13
 RegData     = REG_GPH1CON ;
 RegData   &= 0xFF000FFF ;
 RegData   |= 0x00FFF000 ;
 REG_GPH1CON   = RegData ;

 // Set Interrupt Type is Falling Edge
 RegData       = REG_EXT_INT_1_CON ;
 RegData     &= 0xFF000FFF ;
 RegData     |= 0x00222000 ;
 REG_EXT_INT_1_CON   = RegData ;

 irq_request(TRG1_INT, Trigger1_Interrupt_Handler) ;
 irq_request(TRG2_INT, Trigger2_Interrupt_Handler) ;
 irq_request(ENC_INT, Encoder_Interrupt_Handler) ;

 irq_active(TRG1_INT) ;
 irq_active(TRG2_INT) ;
 irq_active(ENC_INT) ;

 irq_enable() ;
}

이것을 실행하면

인터럽트가 모두 Enable되고 벡터 어드레스도 설정이 되는데,

인터럽트가 걸리지 않습니다.

 

무엇이 문제일까요?

 

다른 레지스터를 설정해 주어야 하는 것이 있나요?