-
-
Neuer Benutzer
Öfters hier
Sporadisch falsche LCD-Displayausgabe
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?
-
Erfahrener Benutzer
Roboter Genie
Vielleicht zwischen den einzelnen Befehlen ne kleine Pause lassen?!
-
Benutzer
Stammmitglied
SPI konfiguration
Ü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)
-
Erfahrener Benutzer
Begeisterter Techniker
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.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen