Do tej pory nie potrzebowałem jednoczesnego odmierzania kilku różnych wartości, w związku z czym timerów w Atmedze8 wystarczało do moich zastosowań. Mogłem sobie pozwolić na zaangażowanie konkretnego licznika do konkretnego zadania i resetowanie go wedle upodobań. Nie zawsze jednak tak się da...
W Arduino jest taka funkcja jak millis(), która zwraca ilość milisekund jakie upłynęły od uruchomienia układu. Wartość przechowywana w long int, wystarczy na trochę mniej niż 50 dni. Gdy zachodzi konieczność podjęcia jakiejś akcji w określonym czasie od jakiegoś zdarzenia wystarczy przepisać aktualną wartość do zmiennej, a potem sprawdzać jak różnica miedzy wartością aktualną a zapisaną ma się do żądanego interwału.
Zastanawia mnie tylko jedna kwestia. Jakie mogą być skutki ewentualnego przepełnienia zmiennej i rozpoczęcia odliczania od nowa? Można sobie wyobrazić, że urządzenie pracujące cały czas będzie miało taki uptime. Można jakoś bronić się przed taką sytuacją?