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
:
Wiederhergestellt durch Admin
Herbert Kn schrieb:
> Woran kann das liegen ??
C-Buch lesen
int16 inbyte;
printf( "byte= %d", (int)inbyte );
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
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'
@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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.