Forum: Mikrocontroller und Digitale Elektronik scanf_p unsigned char / Einlesen von Werten 0-255


von Sebastian W. (wantia)


Lesenswert?

Hallo!

Kann ich mit der scanf Funktion auch unsigned char(0-255) Werte 
einlesen?
Ich habe es bisher nur für char Werte geschafft.

uint8_t  temp2[MESSAGE_LENGTH];
scanf_P(PSTR("%s"),&temp2);

Ich möchte Nachrichten nicht im Klartext übertragen, sondern den vollen 
Zahlenvorrat nutzen. Eine Nachricht wie z.B. FF FF FA soll auch so in 
temp2 abgelegt werden.

Kontroller: ATXMEGA 128
Avr Studio 5.1

Freue mich über jeden Rat...

Viele Grüße

von dummschwaetzer (Gast)


Lesenswert?

int  scanf ( const char * format, ... );

Format specifiers:
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

von Karl H. (kbuchegg)


Lesenswert?

Sebastian W. schrieb:

> uint8_t  temp2[MESSAGE_LENGTH];
> scanf_P(PSTR("%s"),&temp2);
>
> Ich möchte Nachrichten nicht im Klartext übertragen, sondern den vollen
> Zahlenvorrat nutzen. Eine Nachricht wie z.B. FF FF FA soll auch so in
> temp2 abgelegt werden.


wozu brauchst du dann scanf?
Die Bytes die übertragen werden sind dann schon deine Bytes. Da ist dann 
nichts mehr mit Texten. Und wo keine Texte, muss auch nichts konvertiert 
werden.

von Sebastian W. (wantia)


Lesenswert?

Erstmal Danke für die schnelle Rückmeldung...

"Die Bytes die übertragen werden sind dann schon deine Bytes. Da ist 
dann
nichts mehr mit Texten. Und wo keine Texte, muss auch nichts konvertiert
werden."

--> Ja sehe ich genau so, konvertieren will ich auch gar nicht. Ich 
möchte z.b. FF übertragen aber alles über 128 wird halt nicht 
übertragen.  Vermute das hat was mit char Wertebereich zusammen obwohl 
ich ja eigenlich nur unsigned char verwende...


Habe auch schon durch formatierungszeichen versucht die ausgabe als 
unsigned char zu erzwingen klappte aber nicht.

Was mache ich falsch?

von Karl H. (kbuchegg)


Lesenswert?

Sebastian W. schrieb:

> Was mache ich falsch?

Das weiß ich nicht, weil ich nicht hellsehen kann.

von Bernhard S. (b_spitzer)


Lesenswert?

getchar() verwenden??

von Sebastian W. (wantia)


Lesenswert?

Bernhard Spitzer schrieb:
> getchar() verwenden??

Hallo, hab ich gerade mal ausprobiert.... komischer weise funktioniert
nur die scanf_p Funktion, aber halt nur bis 128. Ich vermute das 
irgendwo anders der Fehler liegt..
Habe den Fifo und stdio von open_mcp im gebrauch.....

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.