Forum: Mikrocontroller und Digitale Elektronik String ohne Lücke splitten


von 1to1 (Gast)


Lesenswert?

Hallo

Von einem GPS-Modul empfange ich an einem uC (AT89C51ED2) diverese 
Daten, darunter auch die Uhrzeit.

Die sieht folgendermassen aus:

"192312.250" was steht für 19 Stunden 23 Minuten 12 Sekunden und 250 ms.

Ich habe hier so meine Probleme diesen in die einzelnen Werte (also 
Stunden, Minuten usw.) zu splitten, da es keine Kommas, Leerzeichen oder 
was ähnliches dazwischen gibt. Sonst wäre es nicht so ein Problem.

Kann mir da jemand einen Tip geben?

mfg

von El Patron B. (bastihh)


Lesenswert?

Wieso? ist doch ganz einfach?
Zählst einfach die Zeichen von Links nach Rechts und dementsprechend 
kürzt du die dann.

Grüße

von Roland Praml (Gast)


Lesenswert?

Auf einen µC würde ich das vermutlich so implementieren
1
s = "192312.250";
2
std = (s[0] - '0') * 10 + (s[1] -'0');
3
min = (s[2] - '0') * 10 + (s[3] -'0');
4
sec = (s[4] - '0') * 10 + (s[5] -'0');
5
msec = std = (s[7] - '0') * 100 + (s[8] -'0') * 10 + (s[9] -'0');
Sollte ziemlich ressourcenschonend sein.

Gruß
Roland

von Roland Praml (Gast)


Lesenswert?

muss natürlich
> msec = (s[7] - '0') * 100 + (s[8] -'0') * 10 + (s[9] -'0');
heissen

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
Noch kein Account? Hier anmelden.