mikrocontroller.net

Forum: Compiler & IDEs Ausgabe teilweise um 64dez erniedrigt


Autor: stefanie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.