www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik printf funktioniert nur mit 2 angehängten Leerzeichen


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier mal

  printf( "hallo World\n" );

Also mit einem abschliessenden \n (Carriage Return/LineFeed).
Moeglicherweise stecken die Zeichen noch in irgendwelchen
Puffern.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe schon eine Antwort gefunden, ist sehr interessant!!

http://www.ccsinfo.com/forum/viewtopic.php?t=24313...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.