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