Auch um die langen Zeitdifferenzen zu erkennen, muß man den Timer nicht zurücksetzen. Man kann z.B. die Overflows als vollwertige erweiterung der Zählerauflösung benutzen, dann auf 32 Bits was einigen Minuten entspricht. Dabei muß man aber ein paar kleine Tücken beachten, wenn die beiden Interrupts fast gleichzeitig auftreten. Ein lösung dafür gibt es z.B. hier:
http://www.rn-wissen.de/index.php/Timer/Counter_(Avr)
Nur ganz langen Stillstand über die Minuten hinaus müßte man extra abfangen. Da hat man aber viel Spielraum.

Wenn man ohnehin einen Vorteiler von 256 oder 64 nimmt, könnte man den Timer auch zurücksetzen. Das wird etwas einfacher, die Ungenauigkeit wird auch im Bereich einiger weniger Taktzyklen sein, wenn keine weiteren Interrupts für zusätzliche Verzögerungen sorgen.
Der Overflow interrupt kann dann direkt zum erkennen von Stillstand genutzt werden.


Die Berechnung des OCR1A wertes kann man auch mit Ganzzhalen machen. Bei der einfachen Division durch eine ganze Zahl ganz einfach so ähnlich wie geschrieben, nur mit einem normalen unsigned int, kein unsigned short int , das wären nur 8 Bits. Für mehr Auflösung in der Verzögerung würde ich multiplizieren auf ein 32 Bit Zwischenergebnis und dann um 16 Bits verschieben. Wenn man es eilig hat, geht das auch per Union.

Wenn man den Timer zurücksetzt kommt der ICP Wert nicht mehr in die Formel. Sonst müßte für die Perioden dauer der vorherige Wert abgezogen werden.