This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What happens if handlers are called at the same time? (nrf51422)

Hi,

I am new to firmware engineering. I have a simple and basic question.

If there's Timer A and B, and both interval is 100ms, what happens to the timeout handler functions? If both timers start at the same time then also the predefined timeout handler functions will be called at every same, right? If it's right, how does nrf51422(s130) handle this situation? Does it runs only one handler? Or both?

define A_TIMER_INTERVAL APP_TIMER_TICKS(100,APP_TIMER_PRESCALER)

define B_TIMER_INTERVAL APP_TIMER_TICKS(100,APP_TIMER_PRESCALER)

APP_TIMER_DEF(A_timer_id);

APP_TIMER_DEF(B_timer_id);

static void A_timeout_handler(void * p_context) {/* some codes */}

static void B_timeout_handler(void * p_context) {/* some codes */}

app_timer_create(&A_timer_id,APP_TIMER_MODE_REPEATED,A_timeout_handler);

app_timer_create(&B_timer_id,APP_TIMER_MODE_REPEATED,B_timeout_handler);

app_timer_start(A_timer_id,A_TIMER_INTERVAL,NULL);

app_timer_start(B_timer_id,B_TIMER_INTERVAL,NULL);

Parents
  • To Jakub Rzeszutko,

    Oh, you're right. I think the question was wrong. If handler functions of timer A,B is defined

    static void A_timeout_handler(void p_context) {nrf_delay_ms(50);} static void B_timeout_handler(void p_context) {led_blink();}

    like this, then what happens? Does light blinks right after the program starts and blinks every 100ms? Or waits 50ms and blinks?

Reply
  • To Jakub Rzeszutko,

    Oh, you're right. I think the question was wrong. If handler functions of timer A,B is defined

    static void A_timeout_handler(void p_context) {nrf_delay_ms(50);} static void B_timeout_handler(void p_context) {led_blink();}

    like this, then what happens? Does light blinks right after the program starts and blinks every 100ms? Or waits 50ms and blinks?

Children
No Data
Related