Ausgabe teilweise um 64dez erniedrigt

Gast #1777184
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?
Gast #1777401
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
#1777406
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.