Guten morgen zusammen, ich arbeite zur Zeit an einem Timer, der seine Uhrzeit aus einem DS1307 bekommt. (funktioniert) Nun soll zu einer einstellbaren Zeit, ein Ereignis geschehen. (Vergleich von start Zeit, stop Zeit und aktuelle Zeit) Dazu möchte ich gerne die stunden und minuten zu einer Variablen zusammenfügen sprich 12:30 = 1230, um sie dann zu vergleichen. Ich finde nur nichts wie ich das anstellen könnte. Wäre jemand so freundlich mich auf den richtigen Weg zu weißen? :) Programmiersprache = C Editor = AVR Studio 4 compiler = winavr Prozessor: Mega 32
Wenn sie wirklich als dezimal 12 und 30 vorliegen: Stunde * 100 + Minute, ergibt 1230. Wahrscheinlich liegen sie aber in BCD vor, also 0x12 und 0x30, dann geht das mit 100 nicht, dafür aber so: (Stunde << 8) + Minute, ergibt 0x1230.
sie liegen als dezimal vor. Die werden in der DS1307 routine schon umgewandelt von bcd auf dezimal. Probier ich mal aus und geb dann Rückmeldung. Danke schon mal ;)
123 schrieb: > Dazu möchte ich gerne die stunden und minuten zu einer Variablen > zusammenfügen sprich 12:30 = 1230, um sie dann zu vergleichen. Das wird fummelig, wenn du plötzlich noch Tagesgrenzen berücksichtigen musst. Ich verwende für sowas den Ansatz aus der Unix-Welt, nämlich die Sekunden seit einem fiktiven "Urknall" zu zählen (bei Unix ist das der 1.1.1970). Damit lässt sich dann prima rechnen. Ob du jetzt Sekunden seit Zeitpunkt X oder Minuten seit Zeitpunkt Y verwendest ist eigentlich egal. Das nur so als Anregung. HTH. :)
wie wärs denn mit sinnvollem Umrechnen in Minuten? h*60+m oder sekunden (h*60+m)+s
sam schrieb: > wie wärs denn mit sinnvollem Umrechnen in Minuten? > h*60+m > oder sekunden > (h*60+m)+s Wenn schon dann (h*60+m)*60+s
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.