printf und puts in C18

Gast #1393625
Lesenswert?

Hey

Ich schreibe ein Programm mit MPLAB in C18. Das Programm soll über die 
serielle Schnittstelle mit dem PC komunizieren, ich benutze dazu u.A. 
die Funktionen printf und puts. Das merkwürdige dabei ist, dass die 
Daten von Zeit zu Zeit falsch oder gar nicht übermittelt werden. Deshalb 
wollte ich mir mal die Funktion von printf bzw puts anschauen. Wo kann 
ich die finden?

mfg
Sigi
Gast #1393644
Lesenswert?

Obacht ist geboten bei der Programmierung mit C18, dass man auch den 
Datentyp welchen man übergibt im richtigen Speicherbereich hat. Es gibt 
seperate Funktionen um ROM bzw. RAM Daten zu verarbeiten/aus zu geben.

Wenn man da die falsche benutzt kommt schnell was durcheinander.

Hab leider keinen C18 auf diesen Rechner installiert, aber du solltest 
die funktionen irgendwo im C18 Ordner finden... Hatte z.B. mal das 
Problem, dass der UART nicht richtig initialisiert wurde (und das bei 
einer Microchip eigenen Routine! Da wurde vorm aktivieren des UARTs 
schon RX/TX mit TRIS umgesetzt - hat zu problemen wegen falschen 
ausgangspegel geführt) - da hab ich die funktion aus der lib kopiert und 
abgeändert.
Gast #1393653
Lesenswert?

>mein Programm funktioniert an sich einwandfrei. Wenn ich die Daten über
>TXREG ausgebe, habe ich keine Probleme....

Dann bleib doch dabei.

Wenn du printf falsch benutzt darfst du dich nicht wundern
wenn da Müll rauskommt.

Beispiel: printf("%d",wert);

Bei %d wird ein int für wert erwartet. Wenn du für wert ein long 
übergibst
dann kracht es halt.

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