Forum: Compiler & IDEs sscanf mit AVR Studio 4


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen ,

wollte mal nachfragen ob jemend das Problem bereits gehabt hatte:

Ich will Float-Zahlen über sprintf ausgeben und über sscanf einlesen.
Dazu muss man im AVR Studio4 einige LIBs einfügen und Linker 
Einstellungen ändern:

1. LIBs einfügen: Projekt->Configuration Options->Libraries ich habe 
libprintf_flt.a , libscanf_flt.a und libm.a eingefügt.

2. Linker Flags setzen: Projekt->Configuration Options->Custom 
Option->Linker Option

Mit ausgeben von Float-Zahle funktioniert hervorragend.
Mit sscanf kann ich gar nichts machen, es passier einfach nichts:


sscanf( usartBuf->rx, "%u", &zahl );

Ich Währe sehr dankbar für irgendeinen Tipp.

Mit freundlichen Grüßen

Andreas

von Krapao (Gast)


Lesenswert?

Passt %u zu den Datentypen von usartBuf->rx und zahl?

von Knut (Gast)


Lesenswert?

Hmm keine Ahnung, aber ich nutze immer String compare Funktion.
Musste mal in der String.h reinschauen.



Knut

von Stefan E. (sternst)


Lesenswert?

Die drei -l* bei den Linker-Options haben da nichts zu suchen. Ich sehe 
da jetzt zwar nicht direkt eine Korrelation zu deinen Problemen, aber 
trotzdem würde ich die erst mal entfernen.

von Karl H. (kbuchegg)


Lesenswert?

Knut schrieb:
> Hmm keine Ahnung,

Und genau da liegt das Problem.

> aber ich nutze immer String compare Funktion.

Was hat die mit sscanf zu tun?

> Musste mal in der String.h reinschauen.

Nö. Du musst in ein C Buch reinschauen! Oder alternativ im Web eine 
Beschreibung der Format-Strings suchen, so wie sie von sscanf benutzt 
werden!

von Karl H. (kbuchegg)


Lesenswert?

> sscanf( usartBuf->rx, "%u", &zahl );

float und %u passen nicht zusammen.

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.