테스트진행 중 디버깅을 위해 입력력 스위치를 많이 사용하는데 [MSPM0G3107 SSM] 보드에는 입력 스위치가 있고 이를 이용하여 외부 인터럽트 테스트를 진행 해 보자
[MSPM0G3107 SSM] 보드 부트옵션을 위한 스위치가 PA18에 연결되어 있다.
SYSCONFIG를 이용하여 입력 GPIO를 추가하고 인터럽트를 설정해 되면 된다.
인터럽트 핸들러는 GROUP1_IRQHandler() 함수를 재정의해서 처리 할 수 있다.
void GROUP1_IRQHandler(void)
{
switch (DL_Interrupt_getPendingGroup(DL_INTERRUPT_GROUP_1)) {
case GPIO_GRP_0_INT_IIDX:
/* If SW is high, turn the LED off */
if (DL_GPIO_readPins(
GPIO_GRP_0_PORT, GPIO_GRP_0_SW_PIN1_PIN))
{
DL_GPIO_clearPins(GPIO_GRP_1_PORT, GPIO_GRP_1_LED1_PIN_PIN);
}
else
{
DL_GPIO_setPins(GPIO_GRP_1_PORT, GPIO_GRP_1_LED1_PIN_PIN);
}
break;
}
}
NVIC_EnableIRQ() 함수를 이용하여 인터럽트를 등록해 준다.
int main(void)
{
SYSCFG_DL_init();
NVIC_EnableIRQ(GPIO_GRP_0_INT_IRQN);
while (1)
{
__WFE();
}
}
반응형