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
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;
}