Ich benutze einen PIC16F876 mit MPLAB 7.22 und dem CSS-Compiler. Mit dem printf-Befehl möchte ich Daten über die RS232 Schnittstelle zum PC übertragen (Hyperterminal). Der Quellcode: #include <16F876.h> #FUSES HS,NOWDT,NOLVP #use delay(clock=4000000) #USE RS232 (BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7) int i; void main (void) { printf("HalloWorld"); } Im Terminalprogramm (entweder Microsoft oder HTerm) kommen aber die letzten beiden Buchstaben nicht an, es erscheint also nur "HalloWor". Auch bei einem Integer muss ich zwei Leerzeichen anfügen damit es funktioniert: printf("%d ",i) funktioniert, printf("%d",i) dagegen gar nicht. Hat jemand schon einmal mit diesem Problem zu tun gehabt?
Probier mal printf( "hallo World\n" ); Also mit einem abschliessenden \n (Carriage Return/LineFeed). Moeglicherweise stecken die Zeichen noch in irgendwelchen Puffern.
Mit einem angehängten \n erscheint ein Buchstabe mehr, also "halloWorl". Weiter habe ich festgestellt, dass bei mehreren printf-Anweisung immer nur bei der letzten zwei Zeichen angefügt werden müssen. Hierbei muss es sich auch nicht um Leerzeichen handelt, es können beliebige sein. int i; void main (void) { printf("HalloWorld"); i=5; printf("%d\n\n",i); } So funktioniert es, statt \n\n könnte z.B. auch xy stehen.
Habe schon eine Antwort gefunden, ist sehr interessant!! http://www.ccsinfo.com/forum/viewtopic.php?t=24313&highlight=
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.