Ist das Bei-255-Sekunden-Schlapp-Mach-Problem immer noch da, oder lag
das nur an der verkehrten Schieberichtung? In meinen Augen scheint die
Umrechnung der Sekunden in hh, mm und ss korrekt zu sein.
Ein möglicher Fehler liegt aber im Einlesen der 4 Bytes: Hast du
sichergestellt, dass sich die Werte während des Einlesens nicht
ändern? Bspw. dadurch, dass du die 4 Bytes auf Hardwareseite latchst?
Sonst kann (und wird) es hin und wieder passieren, dass der
Sekundenwechsel genau während des Einlesens der Bytes stattfindet.
Die gelesenen Werte sind dann falsch.
Kontrollieren kannst du dies, indem du die 4 Bytes ein zweites Mal
einliest. Haben sie den gleichen Wert wie beim ersten Mal, sind die
Werte ok. Wenn nicht, hast du einen Sekundensprung erwischt. Die Werte
müssen dann korrigiert oder - und das ist die sicherere Methode - ein
drittes Mal eingelesen werden.