printf funktioniert nur mit 2 angehängten Leerzeichen

Gast #276850
Lesenswert?
• ▲
▼
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?
Gast #276852
Lesenswert?
• ▲
▼
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.

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