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 Reply Children
  • define A_TIMER_INTERVAL APP_TIMER_TICKS(10000,APP_TIMER_PRESCALER) //interval: 10 sec

    define B_TIMER_INTERVAL APP_TIMER_TICKS(10000,APP_TIMER_PRESCALER) //interval: 10 sec

    static void A_timeout_handler(void * p_context) {play_music_for_5s();}

    static void B_timeout_handler(void * p_context) {led_glowing_for_5s();}

    app_timer_start(A_timer_id,A_TIMER_INTERVAL,NULL);

    app_timer_start(B_timer_id,B_TIMER_INTERVAL,NULL);

    If I want to make a device play a song while led is glowing for 5 seconds and repeating it every 10 second will this code work fine?

Related