20s_timer_entry timers[MAX_NB_TIMER] = {{TIMER_FREE, NULL, NULL, 0, 0, 0},};
39 TIMER_HANDLE row_number;
44 for(row_number=0, row=timers; row_number <= last_timer_raw + 1 && row_number < MAX_NB_TIMER; row_number++, row++)
48 row->state == TIMER_FREE)
50 TIMEVAL real_timer_value;
53 if (row_number == last_timer_raw + 1) last_timer_raw++;
57 real_timer_value = value;
58 real_timer_value = min_val(real_timer_value, TIMEVAL_MAX);
60 if (total_sleep_time > elapsed_time && total_sleep_time - elapsed_time > real_timer_value)
62 total_sleep_time = elapsed_time + real_timer_value;
68 row->
val = value + elapsed_time;
70 row->state = TIMER_ARMED;
105 TIMEVAL next_wakeup = TIMEVAL_MAX;
112 TIMEVAL real_total_sleep_time = total_sleep_time + overrun;
116 for(i=0, row = timers; i <= last_timer_raw; i++, row++)
118 if (row->state & TIMER_ARMED)
120 if (row->
val <= real_total_sleep_time)
124 row->state = TIMER_TRIG;
131 row->state = TIMER_TRIG_PERIOD;
133 if(row->
val < next_wakeup)
134 next_wakeup = row->
val;
140 row->
val -= real_total_sleep_time;
143 if(row->
val < next_wakeup)
144 next_wakeup = row->
val;
150 total_sleep_time = next_wakeup;
156 for(i=0, row = timers; i<=last_timer_raw; i++, row++)
158 if (row->state & TIMER_TRIG)
160 row->state &= ~TIMER_TRIG;
TIMER_HANDLE SetAlarm(CO_Data *d, UNS32 id, TimerCallback_t callback, TIMEVAL value, TIMEVAL period)
Set an alarm to execute a callback function when expired.
: Header for main.c file. This file contains the common defines of the application.