TIMER_IRQS.timer_irq[1].user_timer_handler 이게 뭐하는 건가요?

blackhush의 이미지

안녕하세요

프로그램 분석하다 이해가 안되는 부분이 있어서 질문드립니다.

ISR(TIMER2_OVF_vect)
{
if (++sys_tick_15ms > 64) /* 1 sec. */
{
sys_tick_15ms = 0;
if(TIMER_IRQS.timer_irq[1].user_timer_handler)
(*TIMER_IRQS.timer_irq[1].user_timer_handler)();
}
TCNT2 = TCNT2_VALUE; /* reset TCNT0(15 ms) */
}

위 인터럽트안에서

if(TIMER_IRQS.timer_irq[1].user_timer_handler)
(*TIMER_IRQS.timer_irq[1].user_timer_handler)();

이부분은 무슨 역활을 하나요?

아시는분은 답변 부탁드려요~~!!

pastime의 이미지

사용자(개발자?)가 등록해 둔 타이머 핸들러가 있는 경우 이를 호출해 주는 듯 합니다.