Hallo walkonshit,

deine Bitmanipulationen habe ich mir nicht genauer angesehen.
Grundsätzlich hast du eine Do-Loop Schleife, die mit Maximalgeschwindigkeit durchläuft. Darein haut dann der Interrupt jede Sekunde und erhöht die Sekunde um 1 und setzt ein Flag.
Das Flag wird in der Do-Loop-Schleife konstant auf 0 gesetzt.

Warum diese "wilde" Konstruktion?
Vorschlag:
1. Einmalig wird die Binäruhr nach der Uhrzeit gestellt (alle Bits gesetzt).
2. Dann gehts in die Do-Loop Schleife, die gar nichts macht (leere Schleife) bis ein Interrupt kommt.
3. Dann wird die Sekundenanzeige neu dargestellt und nur bei Überlauf die Minuten und Stunden geändert.
4. Danach gehts wieder in die leere Schleife an den Anfang (warten auf nächste Sekunde).

Dann wird die Anzeige ganz ruhig und völlig entspannt.

Gruß Dirk