본문 바로가기

[NXP]/LPC1k

LPC1114 외부 인터럽트 테스트 예제

LPC1114 외부 인터럽트 테스트 예제

외부 인터럽트 소스 테스트 하려는데 잘 동작을 안한다.

다른 인터럽트는 다 잘 동작하는데... 외부 인터럽트만 이상하다.


확인결과 IAR에서 제공하는 startup code가 두가지인데 코드가 약간 다르다. 이부분에서 문제가 있었던것 같다. 제공 예제에 설정되어 있는 startup code는 안되고 CMSIS 폴더의 startup code를 적용하니 잘 동작한다.

..IAR Systems\Embedded Workbench 6.4 Kickstart\arm\examples\NXP\LPC11xx\CMSIS\Device\NXP\LPC11xx\Source\IAR



startup_LPC11xx.s




LPC1113 GPIO관련 레지스터







레벨, 에지 인터럽트 유형 설정 






폴링 라이징 에지 유형 설정 레지스터






단일 에지, 복수(상승 하강) 에지 설정 레지스터






LPC1113 외부 인터럽트 핸들러

void PIOINT0_IRQHandler(void)

{

uint32_t regVal;

Led2Toggle();


regVal = GPIOIntStatus(0, 1);

if( regVal )

{

GPIOIntClear( 0, 1 );


//Led1Off();

}

return;

}




LPC1113 외부 인터럽트 테스트 

LPC1K EVM 보드의 P0.1 에 연결되어 있는 스위치를 누르면 인터럽트 발생해서 LED깜박이는 예제를 테스트 해 보았다.


int main()

{

    SystemInit();


    Led1Init();

    Led1Off();

    

    Led2Init();

    Led2Off();


    //SysTick 설정    

    //SysTick_Config( SYSTICK_DELAY );


//외부 인터럽트 초기화

    NVIC_EnableIRQ(EINT0_IRQn);

GPIOSetInterrupt(0, 1, 0, 0, 0);

GPIOIntEnable(0, 1);

    while(1)

    {


    

    }

    return 0;

}


반응형