Serielles Kommunikation, Parsen von Double

OP #912611
Lesenswert?
• ▲
▼
Hallo kann mir vielleicht jemand einen Denkansatz geben oder einen 
Beispielcode wie man mit dem AVR- GCC ein serielle Eingabe realisiert, 
welche so ähnlich aussieht wie die SCPI- Syntax, das Parsen bereitet mir 
Kopfzerbrechen und das Wandeln der empfangenen Zahlen in Double git es 
da irgendeine Funktion für?
#912633
Lesenswert?
• ▲
▼
Honkey Honk wrote:
> SCPI- Syntax

sagt mir jetzt nichts.

> das Parsen bereitet mir
> Kopfzerbrechen

Je nachdem wie die SCPI Syntax aussieht, kann das von
simplen Tabellen bis zu Techniken aus dem Compilerbau reichen.
Grundlage ist aber praktisch immer:
Die empfangenen Zeichen in einem String sammeln.
Den String danach in einzelne Wörter zerlegen.
Anhand der erkannten Wörter weitermachen.

> und das Wandeln der empfangenen Zahlen in Double git es
> da irgendeine Funktion für?

strtod( ... )
findest du in jeder C-Doku
#912667
Lesenswert?
• ▲
▼
Double kannst du ähnlich wie int parsen. Erst sammelst du alle Ziffern 
ein (für jede Ziffer double*10+ziffer), danach setzt du das Komma 
(Dezimalpunkt suchen, Position merken, schauen ob hinten noch E+/-x 
steht, wenn ja draufrechnen, dann *10^).

cstdlib kann man nehmen, wenn man verstanden hat wie es funktioniert. 
Wobei die Lib auf'm Mikrocontroller doch etwas overkill ist.
#912670
Lesenswert?
• ▲
▼
I_ H. wrote:

> cstdlib kann man nehmen, wenn man verstanden hat wie es funktioniert.
> Wobei die Lib auf'm Mikrocontroller doch etwas overkill ist.

Ich habs jetzt nicht ausprobiert, würde aber nicht erwarten,
dass ein strtod noch massig anderes Zeugs aus der Standard Lib
nach sich zieht.

Wenn man selbst was schreibt: Auf die Behandlung der Vorzeichen
nicht vergessen!

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