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
>Deshalb wollte ich mir mal die Funktion von printf bzw puts anschauen.
Schau dir lieber noch mal dein Programm an.
mein Programm funktioniert an sich einwandfrei. Wenn ich die Daten über TXREG ausgebe, habe ich keine Probleme....
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.
>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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.