Printf mit tms470r1b1m funktioniert nicht

Gast #2068797
Lesenswert?

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
#2074164
Lesenswert?

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 #2075701
Lesenswert?

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

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