Forum: Compiler & IDEs Ausgabe teilweise um 64dez erniedrigt


von stefanie (Gast)


Lesenswert?

Ich nutze ein LCD-Display und habe mir dazu eine Ausgabefunktion für 
Strings geschrieben:

void LCD_putsf(flash char* string)
{

   char len;
   char i;
   len = strlenf(string);
   SS_LCD = 0;
   spi(0xAA);
   spi(0x05);   //Blocksenden
   spi(len+3);
   spi('D');
   spi('T');
   for (i = 0; i < len; i++)
   {
        spi(string[i]);
   }
   spi(0x00);
   SS_LCD = 1;
}


Die Funktion funktioniert soweit, aber ich erhalte an der Ausgabe noch 
folgende Fehler:
-teilweise werden Buchstaben "verschluckt"
-für einzelne Buchstaben wird das um 64dez erniedrigte Zeichen der 
ASCII-Tabelle angezeigt (z.B. 5 statt u, % statt e usw.)

Die Fehler tauchen mitten im String auf und jedesmal an anderen Stellen.
Ich lasse dem Display auch genug Zeit. Außerdem habe ich es auch mir 
kurzen Strings versucht (nur immer ein Wort), da ist es zwar etwas 
besser, aber der Fehler ist auch nicht behoben.

Mit was kann dieser Fehler zu tun haben?

von Andreas (Gast)


Lesenswert?

Hallo,

ohne zu wissen was "spi()" macht wird Dir hier keiner Auskunft geben 
können.

Auf Grund der Zeilen die Du hier reingesetzt hast wird Dir jeder nur 
sagen können "müsste funktionieren" und mehr nicht.

Gefühlsmäßig würde ich sagen, liegt der Fehler entweder im spi() oder in 
der Initialisierung des LCD-Displays.

Grüße
Andreas

von Bernhard R. (barnyhh)


Lesenswert?

Bitte gaaaaaaaaaaaaanz langsam! Das arme LCD-Display verschluckt sich 
wahrscheinlich. Das LCD-Datenblatt wird gewisse Mindestwartezeiten 
zwischen den einzelnen übertragenen Zeichen benötigen. Vielleicht ist 
auch der SPI-Takt etwas hoch.

Zusammengefaßt:
Sorge dafür, daß das Timing Deiner Hardware stimmt!

Wenn das Timing im Rahmen der Spezifikationen liegt und die Probleme 
immer noch auftreten, dann schau Dir bitte die Signalformen und -Pegel 
an.

Viel Spaß beim Debuggen
Bernhard

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
Noch kein Account? Hier anmelden.