Mplab Printf integer zu Hyperterminal

#1550038
Lesenswert?

Hallo !

Hätten eine Frage bezüglich dem Printf Befehl bei Mplab(C).

Wir programmieren mit einem PIC18f4550 und wollen eine int16 zahl über 
die serielle Schnittstelle übertragen und im Programm Hyperterminal 
empfangen bzw.darstellen.

Die wesentlichen Komponenten unseres Programms sind wie folgt:

int16 inbyte;

und in der main:

printf("byte="+inbyte+"     ");

--------------
Habe mich schon in der CCS Help erkundigt was ich genau mit % hinzufügen 
muss. Dort steht geschrieben das %u für unsigned Integer hinzugefügt 
werden muss. Jedoch bekomme ich im Hyperterminal nur kryptische Zeichen 
und nicht das inbyte was ich darstellen will.

Woran kann das liegen ??

danke im voraus
#1550084
Lesenswert?

hallo

danke für die schnelle Hilfe!

Wir haben das mittlerweile versucht , erhalten jedoch dezimale werte im 
bereich von 20-300 ! Anzeigen soll es jedoch zahlen wie inbyte = 
1111101111111111 ;

Ist es möglich das Hyperterminal sozusagen nicht kompatibel mit Mplab 
ist ??

Normale Printf Befehle wie Printf("Hallo"); können wir jedoch ohne 
weiteres senden !

mfg
#1550271
Lesenswert?

Herbert Kn schrieb:
> hallo
>
> danke für die schnelle Hilfe!
>
> Wir haben das mittlerweile versucht , erhalten jedoch dezimale werte im
> bereich von 20-300 !

Ja logisch.
inbyte enthält eine Zahl, und mit %d wird diese Zahl in menschenlesbarer 
Form als Dezimalzahl aufbereitet

> Anzeigen soll es jedoch zahlen wie inbyte =
> 1111101111111111 ;

Dann musst du dir selbst eine Ausgabefunktion machen, die dir die Zahl 
binär aufdröselt oder du verwendest zb itoa. Dem kann man die 
Zahlenbasis vorgeben.

> Ist es möglich das Hyperterminal sozusagen nicht kompatibel mit Mplab
> ist ??

Quatsch.
Text ist Text.
Du gibst Text aus. Das die 'Buchstaben' des Textes aus '1' '2' '3' 
bestehen und du daher als schlauer Benutzer vor dem Schirm 
hundert_drei_und_zwanzig liest, interessiert weder den C-Compiler noch 
Hyperterminal. Der eine schickt Text, der andere stellt den Text dar. 
Welcher Text geschickt wird, legst du als Programmierer fest. Lässt du 
als Programmierer den falschen Text schicken, darfst du dich nicht 
wundern, wenn der angezeigte Text nicht dem entspricht was du dir 
erhoffst.
Programmierung funktioniert immer noch nach dem Muster
  'Do what I tell you to do'
und nicht nach
  ' Do what I mean that you should do but am not able to express 
correctly, therefore please correct my mistakes and insufficient 
knowledge on your own'
Gast #1550737
Lesenswert?

@kbuchegg
>Programmierung funktioniert immer noch nach dem Muster
>  'Do what I tell you to do'
>und nicht nach
>  ' Do what I mean that you should do but am not able to express
>correctly, therefore please correct my mistakes and insufficient
>knowledge on your own'

Dass das stimmt sieht man schon am komplizierteren Satzbau der 
Beschreibung der falschen Vorgehensweise - der ideale Programmierer ist 
eben faul ;)

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