PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sporadisch falsche LCD-Displayausgabe



Stefanie
10.07.2010, 21:18
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?

TobiKa
10.07.2010, 21:28
Vielleicht zwischen den einzelnen Befehlen ne kleine Pause lassen?!

stoerpeak
11.07.2010, 10:46
Überprüfen, welche Parameter die Zielhardware benötigt:

1. "Clock idle state" der Zielhardware. (Ruhezustand der Clock Leitung high oder low?)

2. Senden mit steigender oder fallender Clockflanke?

3. evtl. Phasenbits justieren, falls vorhanden (Zeitversatz zwischen dem Anlegen gültiger Daten und der Clockflanke)

Artur
11.07.2010, 11:06
Hi,
möglich ist auch eine Störung die gar nicht von der Software her kommt.

Du schreibst nicht wie der Display angeschlossen ist , wenn Kabel -> denn evtl Entstören , sonst auch die Versorgungsspannung macht evtl. gerne Probleme.

Also wenn die Software so steht und stimmt dann weiter als nur Software-Schuld Denken.