Hundertstel in Format mm:ss,hh wandeln

Gast #279762
Lesenswert?

Ein Problem gelöst....und gleich das nächste :-(
Ich habe dam mal wieder voll den Balken vorm Kopf.
Da ihr mir schon so oft geholfen habt:
uC als Stoppuhr....ein Timer löst einen Interrupt alle 0,01 Sekunden
aus.....die Variable "hundertstel" wir hochgezählt bis auf 65536.
Dann wird die Variable "vielfaches_hundertstel" um eins erhöht und
"hundertstel" fängt von vorne an....soweit so gut.
Wie rechne ich die Sache denn aber nun geschickt in das Format mm:ss,hh
um ??
Habt ihr das schon mal gemacht ???


HPK
Gast #279763
Lesenswert?

warum läst du den Timer bis 65536 laufen?

Spontane schnelle Idee:
wenn du ihn im autoreload von (65536-6000) laufen läßt, hast du in
deinem "Vielfachen" die Minuten.
Und im Timer:
(timer+6000)/100 = sekunden
(timer+6000)%100 = hunderstel

Ich hoffe meine spontane Idee ist so richtig.

Gruß

Thomas
Gast #279764
Lesenswert?

für Uhren gibt 2 prinzipielle Wege:
-entweder für jede Zeitstelle ein eigenes Byte benutzen, bei ==60 (oder
100 oder 24) auf Null setzen und das nächsthöhere Byte incrementieren.
Das ist direkt Ausgabefreundlich, mehr aber auch nicht. Aufwändiger in
der Programmierung, langsamer, und rechnen kann man damit so gut wie
gar nicht.
-oder, so ähnlich wie du es angedacht hast, eine Zeiteinheit in einer
entsprechend grossen Variable zählen und erst bei der Ausgabe
formatieren. Das macht man dann mit Divisionen, Ganzzahlteil und Rest.

Mit einer long-Variablen kommst du bei 1/100s immerhin auf >1Jahr, das
sollte genügen.
Bsp: Zählerstand 456789 /100=4567, Rest 89 (1/100s)
4567/60=76, Rest 7 (s)
usw.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren