본문 바로가기
임베디드 개발/TMS320F2838x (C28x)

TMS320F28388D ] getTick 구현

by eteo 2023. 2. 21.

 

 

 

ISR에서 사용할 volatile msTick변수와 getTick함수는 모든 HW드라이버파일이 사용할 수 있는 헤더 extern 해둠

 

volatile uint32_t msTick;

uint32_t getTick(void)
{
  return msTick;
}

 

 

main.c 사용 예

timerOpen(TIMER_CH1, 1000, &timer0ISR);
    
    //...
    
for(;;)
{
    if(getTick()-timeBefore > 1000)
    {
        timeBefore = getTick();
        print("\r\nHello World!");
    }
}

 

timerOpen함수는 함수포인터로 받아서 콜백함수 등록

 

__interrupt void timer0ISR(void)
{
    msTick++;
    
    // Acknowledge this interrupt to receive more interrupts from group 1
    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1);
}

 

 

 

 

ms 단위 delay 함수

void delay(uint32_t time_ms)
{
  DEVICE_DELAY_US(time_ms*1000);
}