
Le 24/01/2011 12:58, Albert ARIBAUD a écrit :
For instance, if at loop entry get_timer() was, say, 10 ticks to rollover and the loop timing was 12 ticks, you end up with an end date of 2. If your loop body runs long enough, get_timer() may already have gone past this and will this stay greater than timeout_end for a very long time.
I should always wait for the coffee to produce its effect before posting. The right example is having timeout_end *not* have rolled over (thus being a very high number) and the loop body being long enough that get_timer() is called at the first loop condition test *after* rollover, thus being very small.
OTOH, using get_timer() on entry of loop and subtracting it from get_timer() at each loop iteration always yields the time elapsed, unaffected by rollover. You can then safely compare this elapsed time with the time-out value.
Amicalement,
Amicalement,