Set of functions and procedures to manage precise delay slots using the TMR0 interrupt.
Demo project: None.
Authors:
- Joep Suijs (jsuijs): Original idea of "non blocking delays" in JALLIB.
- Vasi (funlw65): Initial port from JAL to PMP Pascal.
- Philippe Paternotte (PPA).
Features:
This unit may handle one to many precise times, with an accuracy equal to the TMR0 interrupt rate.
The number of timer "slots" is defined at compile time to generate a code as light as it may be.
One timer "slot" may handle:
- An elapsed condition (this bit is set each time the timer has elapsed, the bit is cleared when it is read).
- A remaining ticks counter (read the remaining ticks until "terminated" or "elapsed" condition).
- A single shot mode (the timer runs once).
Note: Even if the TMR0 rate is low, having too many slots may not be a good idea because it may generate a lot of interrupt overhead that may have some incidence in the main program process. If so, it may be a better idea to count the elapsed condition of a common timer slot in separate counters in the main program and to execute actions depending on these counts.