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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.