PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur noch Zeichenmüll im Terminal



stereolog
22.09.2011, 22:15
Hallo!

Ich habe jetzt eine Weile das Programm RP6Control_10_Move2_fast für die RP6 Control als Ausgangsbasis genommen und leicht modifiziert.
Eigentlich habe ich lediglich Einstellungen verändert, sodass ich ein 4x20 Zeichen LCD benutzen kann und die Hintergrundbeleuchtung über den PC7 schalten kann.
Danach habe ich mit der Ausgabe auf dem Display gespielt.
Jetzt habe ich zufälligerweise bemerkt, dass im Terminal haufenweise nur unleserliche Zeichen erscheinen, anstatt die Ausgabe diverser Sensorwerte:

20099

Wenn ich das Originalprogramm drauflade, funktioniert alles. Was kann das für Ursachen haben? An den UART-Sachen habe ich nichts geändert...

Gruß, Benny

SlyD
23.09.2011, 09:38
Hallo,

tja WAS GENAU hast Du denn geändert?

Mach alles wieder rückgängig und pack es dann schrittweise wieder rein, zwischendurch immer testen obs
noch funktioniert...

Sowas könnte passieren wenn ein Zeiger ausbüchst (d.h. auf Adressen springt wo er nicht hinsollte...)


MfG,
SlyD

danimath
23.09.2011, 10:05
Oder wenn in einer Zeichenkette das abschließende '\0' fehlt (mein Lieblingsfehler ;-))

viele Grüße
Andreas

SlyD
23.09.2011, 10:13
> Oder wenn in einer Zeichenkette das abschließende '\0' fehlt (mein Lieblingsfehler :wink:)


Ja das ist eines der möglichen Zeiger ausbüchsen Probleme die ich meinte ;)

stereolog
25.09.2011, 12:35
Ich habe jetzt ausgehend vom Originalprogramm meine Änderungen schrittweise eingefügt und zwischendurch immer getestet.
Jetzt ist es wieder auf dem Stand, mit dem es zuvor nicht lief - und es läuft jetzt fehlerfrei! Ich verstehs nicht...

Und wie gesagt: An Zeichenketten o.Ä. habe ich nichts geändert.
Meine Änderungen waren diese:
- RP6Control.h: Initialwerte für PC7 geändert (Ausgang ohne Pullup)
- RP6ControlLib.h/.c: Anpassungen in _showScreenLCD_P, initLCD, writeIntegerLengthLCD, _showScreenLCD_P, setCursorPosLCD zum Betrieb eines 4x20 LCDs
- Einbinden von 2 eigenen kleinen Funktionen zum Ein- und Ausschalten der LCD-Beleuchtung in einer separaten .c und .h Datei

Wie gesagt, der jetzige Stand funktioniert plötzlich, obwohl er sich eigentlich nicht vom vorherigen unterscheidet...unerklärlich, aber das Problem scheint damit irgendwie behoben zu sein.

Gruß, Benny