Skip to content
Snippets Groups Projects
  • Ludwig Knüpfer's avatar
    751cfe64
    fix native hwtimer · 751cfe64
    Ludwig Knüpfer authored
    The hardware timer used relative offsets that were never updated
    before. This leads to two problems:
    a) later timers will get pushed into the future by the amount of
       previous timers
    b) if a short timer is set continuously, a longer timer will never be
       called
    
    Example:
    a)
    Timer a with 500 ms is set, timer b with 600 ms is set.
    timer a expires after 500 ms, timer b will be set to expire in 600 ms
    which totals to 1100 ms.
    b)
    Timer a is set to 500 ms, timer b is set to 600 ms.
    Timer a expires and is set again. Now timer a will expire in 500 ms
    and timer b will be pushed further into the future. Repeating this
    will lead to b never expiring.
    751cfe64
    History
    fix native hwtimer
    Ludwig Knüpfer authored
    The hardware timer used relative offsets that were never updated
    before. This leads to two problems:
    a) later timers will get pushed into the future by the amount of
       previous timers
    b) if a short timer is set continuously, a longer timer will never be
       called
    
    Example:
    a)
    Timer a with 500 ms is set, timer b with 600 ms is set.
    timer a expires after 500 ms, timer b will be set to expire in 600 ms
    which totals to 1100 ms.
    b)
    Timer a is set to 500 ms, timer b is set to 600 ms.
    Timer a expires and is set again. Now timer a will expire in 500 ms
    and timer b will be pushed further into the future. Repeating this
    will lead to b never expiring.