본문 바로가기

[TI]/MSP0M

[MSPM0G3507 SSM] 타이머 인터럽트 테스트

마이크로 컨트롤러로 제어를 할때 가장 기본이되고 많이 사용하는 기능이 타이머 인데 MSPM0G 시리즈는 7개의 타이머로 다양한 기능을 제공한다.

 

그중 가장 기본이 되는 타이머 인터럽트 테스트를 해 보자.

SYS Config를 이용하여 타이머를 추가 하고 클럭 소스와 주기를 설정하면 되는데 아주 직관적으로 설정이 가능하다.

 

 

테스트를 위해 1ms로 인터럽트가 수행될 수 있도록 설정한다.

 

 

인터럽트 이벤트도 다양한 옵션으로 선택가능한데 우선 타이머값이 Zero가 되었을때 발생할 수 있도록해서 1ms 마다 인터럽트가 수행되도록 하자

 

 

MSPM0G3507 타이머 인터럽트 테스트 코드

DL_TimerG_startCounter 함수로 타이머를 구동하고 타이머 인터럽트 핸들러 TIMER_0_INST_IRQHandler 에서 LED 토글 하는 간단한 예제를 작성해 보았다.

volatile unsigned int gTimetick1 = 0;

void TIMER_0_INST_IRQHandler(void)
{
    //DL_TimerA_clearInterruptStatus(TIMER_0_INST, DL_TIMERG_INTERRUPT_LOAD);
    switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
        case DL_TIMER_IIDX_ZERO:
            gTimetick1++;
            if(gTimetick1>1000-1)
            {
                gTimetick1 = 0;
                Led1Toggle();
            }
            break;
        default:
            break;
    }
}


int main(void)
{
    SYSCFG_DL_init();
    Led1Off();
    Led2Off();

    NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);

    DL_TimerG_startCounter(TIMER_0_INST);
}

 

반응형