www.mikrocontroller.net

Forum: Compiler & IDEs mit sscanf Hex Zahlen selektieren


Autor: olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich empfange über die Uart die Zeichenkette   41 0C 12 BA\n . Nun möchte 
ich aus dieser Kette die beiden letzten Hex(12 und BA) rausholen und als 
int speichern. Würde das so richrig sein?
int temp1
int temp2
uint8_t rx_buffer[128];

sscanf(rx_buffer,"%*s %*s %X %X",&temp1,&temp2);
Danke und Gruss

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht ok aus.
Außer, daß zu %x eigentlich unsigned int gehört, nicht int.

Ach ja, und ein paar Semikolon fehlen natürlich :-)

PS:

Was auch fehlt, ist der Rückgabewert von sscanf().
Daran kann man erkennen, wenn es nicht geklappt hat und entsprechend 
reagieren anstatt mit Phantasiewerten weiter zu arbeiten.

Autor: olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort!! Muss der Rückgabewert dringend sein? Nur aus 
Interesse?!
Gruss

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dir absolut sicher bist, daß die Eingabe vernünftig ist,
kann man den Rückgabewert ignorieren.
Aber was ist schon sicher außer dem Tod?

Deshalb ist es im Zweifelsfall immer besser, unsinnige
Eingaben zu erkennen und wie auch immer zu reagieren, als
unbemerkt mit unsinnigen Werten weiter zu rechnen.
An solchen Dingen sieht man, wer pfuscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.