Printf mit tms470r1b1m funktioniert nicht

Gast #2068797
Hallo zusammen,

ich habe ein Problem mit dem Printf, ich weiß nicht wie ich es schaffe, 
dass mein ganzer String ausgegeben wird und nicht nur ein Zeichen.
Bin was die Programmiererrei angeht noch blutiger anfänger!

Verwende IAR Kickstart und J-Link von Segger.
Kommunikation zwischen µC und PC funktioniert, habe schon LED beispiele 
aufgespielt und überprüft.

Die kommunikation mit dem PC funktioniert über Serielle Schnittstelle 
auch ich bekomme auch ein Zeichen gesendet, jedoch nicht den ganzen 
String.

Hier der Code:
1
...Hier steht die Initialisierung des Controllers...
2

3
printf("test"); //Aufruf
4

5

6
int putchar (int c)
7
{
8
    // Warten bis fertig
9
    while (TXRDY  == 0);
10
    
11
    // Send character
12
   SCI1TXBUF = c;
13
    
14
    // Warten bis fertig
15
    while (TX_EMPTY == 0);
16
return 0;
17
}

Die initialisierung habe ich weggelassen, weil es an der nicht liegt.
Ich bekomme mit diesem Code nur ein "t" in der Console, was glaube ich 
an der funktion putchar liegt.
Wie muss ich diese umschreiben, damit es funktioniert?

Ich meine das in stdio.h ja die printf und putchar stehen und wenn man 
die putchar nicht selbst schreibt landet der string irgendwo 
undefiniertes?!

Oder müsste man etwas anderes als die putchar funktion verwenden. Habt 
ihr Beispielcode, ich bin schon die ganze Zeit am suchen, jedoch finde 
ich nichts.

Vielen Dank im Voraus, Gruß Chris
Hallo,

Was passiert wenn Du statt printf putchar() mehrmals nacheinander 
aufrufst?

Es könnte auch an falsch eingestelltem Handshake liegen, hast Du danach 
schonmal geschaut? wenn z.B. am Controller Hardware-Handshake 
eingeschaltet ist, sendet er ein Zeichen und wartet dann auf das Signal 
vom PC, dass er das nächste senden darf. Wenn am PC Handshake 
ausgeschaltet ist, oder die Leitungen nicht verbunden sind, wartet er 
für immer, vergebens...
Gast
Hi,

die printf verwendet die putchar automatisch.(normalerweise)
habe den fehler gefunden, es lag an der while abfrage.
Das mehrmals nacheinander putchar aufrufen hatte aber übrigens 
funktioniert. :)

Trotzdem danke für den Tipp.

gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.