LCD Ansteuerung in C wiederholt dinge.

OP #963498
Lesenswert?

Hallo

Ich steuere ein DISPLAYTECH 161A Display (1x16 Zeichen)
mittels diesem Code an:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#LCD-Ansteuerung

Jetzt habe ich jedoch folgendes problem...

wenn ich diesen Code ausführe:
1
 while(1)
2
    { 
3
  delay(); //ca 0.5 Sekunden
4
  set_cursor(0,0);
5
  lcd_string("T");
6
  
7
    }

Dan steht auf dem Display nicht einfach "nur" T sondern
alle 0.5 Sekunden kommt eins Dazu also

T
TT
TTT
TTTT
TTTTT

Doch woran liegt das?

Was ich auch merkwürdig finde, ist das die ersten 8 Zeichen als 1. Zeile
gelten und um auf die zweiten 8 Schreiben zu können muss man die 2. 
Zeile umschalten.

Das dies mit dem Display zu tun hat ist mir jedoch klar.

Danke schonmal.
Gast #963507
Lesenswert?

Also ich weiß ja nicht was du vor hast, aber ich würde das Display nicht 
so direkt in die while(1) klatschen, kostet Rechenaufwand, wenn er alle 
0,5 Sekunden (in diesem Fall) die Displayroutine durchrattert obwohl 
sich eh nix ändert... Und der 0,5 delay in der while(1) bremst natürlich 
auch



Grüße
#963521
Lesenswert?

>>wenn du in die erste Zeile , erstes Zeichen schreiben willst musst du:
>>set_cursor(0,1); benutzen.

Keine Ahnung ob das stimmt, aber WENN das so ist, dann ist ein SEHR, 
SEHR schlechter Porgrammierstil. x zählt ab 0 und y ab 1? Und so ein 
Parameterinterface in einer Hochsprache? Sorry, das ist unakzeptabel, 
dumm, verwirrend und völlig unkonsistent. Welcher Depp programmiert so 
etwas?

@OP,
Kannst Du nicht deine aktuelle set_cursor Routine mal posten, dann klärt 
sich das bestimmt schnell. Die while-Schleife zu verdächtigen (wie 
einige geschrieben haben) ist unsinnig. Man darf an die gliche 
Cursor-Position das gleiche Zeichen schreiben SO OFT MAN WILL!
Ob es sinnvoll ist, darum geht es hier ja nicht. Gehen MUSS es, sonst 
stimmt woanders etwas im Programm nicht.

Jochen Müller
Gast #963548
Lesenswert?

@jochen,
die while(1) sollte man möglichst knapp halten und keine unötigen delays 
einfügen, genauso wie in einer Interruptroutine. Stattdessen sollte man 
eher durch if`s Funktionen aufrufen!! Sonst wir alles sinnlos 
durchgerattert und das kostet wertvolle Zeit.
Das nur so nebenbei, ich möchte dem guten Menschen der das hier gepostet 
hat nur wertvolle Tipps geben ;-)


Grüße
#963549
Lesenswert?

@  Jochen Müller (taschenbuch)

>Wieso wird so ein UNGLAUBLICH SCHLECHTER Programmierstil in Tutorials

Nun lass mal die Kirche im Dorf. Zu JEDER Funktion gibt es eine 
Beschreibung, die den Wertebereich der Parameter klar definiert. Wer 
lesen kann . . .

MFG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren