Forum: Mikrocontroller und Digitale Elektronik Tiny26 LCD an PortA und PortB


von Hanno G. (hanno)


Lesenswert?

Hallo Experten,

bin den halben Nachmittag auf der Suche nach dem Fehler. Habe am Tiny26 
leider nur 2 Pins am PortA und 4 am PortB frei. Wenn ich beiliegendes 
Programm (Auszug) auf AVR oder VMLab simuliere, passt alles, nur in der 
Realität leider nicht. Irgendwo muß der Haken sein, dass auf dem 
LCD-Display (2*16) nur Kästchen erscheinen. Besten Dank für jeden Tipp!

Hanno

von Hanno G. (hanno)


Angehängte Dateien:

Lesenswert?

wohl vergessen die Datei anzuhängen. Sorry

Hanno

von Markus L. (lucky79)


Angehängte Dateien:

Lesenswert?

Woran hast du denn die R/W leitung vom LCD geklemmt?

Wenn R/W an VCC oder offen ist, kanns nicht funtionieren, da das Display 
glaubt, du mochtest lesen... Händ den Pin mit einem R gegen GND, da hast 
sicherlich ein definietes Signal.

Wenn R/W richtig definiert is, kanns nur mehr am Timing liegen.
Ich hab hier meine Implementierung eines 4bit LCD, das auf einem 
Tiny26@1MHz bei mir stabil läuft...

Probier das mal so aus - brauchst ja dieses File nur zu INCLUDEn.

Grüße

Markus

von Hanno G. (hanno)


Lesenswert?

Dank erstmal für deine Antwort. R/W ist an GND angeschlossen. Daran 
kann's nicht liegen.

von Michael U. (Gast)


Lesenswert?

Hallo,

ist das das komplette Programm? Ich vermisse den Resetvektor mit dem 
Sprung zum Programmstart, ich glaube nicht, daß der AVR beim Start mit
text:
 .db  "TEXT",0

allzuviel anfangen kann.

Ansonsten schon hundertmal erwähnt:

   ldi temp, (0<<PIN_LCD_ENABLE)|(0<<PIN_LCD_RS)

man kann eine 0 schieben, wie man will, es bleibt eine 0...

Spielt aber für Dein Problem keine Rolle.

Auch ohne mit Deinem Problem zusammenzuhängen:
lcd_data:

  swap    AL             ;untere 4 bits (Nibble) nach oben
    andi    AL, 0b11110000 ;untere Hälfte auf Null setzen
Die folgende Zeile dürfte für das LCD ohne Bedeutung sein, was soll sie 
also in der Display-Routine  bewirken?
      sbr     AL, 0b00000010 ;
  out  PORTB,Al

Gruß aus Berlin
Michael

von Hanno G. (hanno)


Lesenswert?

Hallo Michael,

es ist nur ein Auszug aus dem Programm, die für das LCD relevanten 
Teile. Die Zeile mit dem "sbr..." habe ich vegessen zu löschen als ich 
den Code von andreas-s umschrieb. Aber sie bewirkt ja nichts!

Hallo Markus,
habe Deine Datei ins Programm eingebunden, aber alles wie gehabt. 
Trotzdem besten Dank.

Hanno

von Markus L. (lucky79)


Lesenswert?

Hanno Gräff wrote:
> Irgendwo muß der Haken sein, dass auf dem
> LCD-Display (2*16) nur Kästchen erscheinen.

meint du etwa damit, dass auf beiden Zeilen schwarze Kästche erscheinen 
oder nur auf der oberen (1. Zeile) ??

Wenn überall, würd ich mal den Kontrast vom LCD checken...

Gruß,

Markus

von Hanno G. (hanno)


Lesenswert?

Hallo Markus,

nur auf der oberen Zeile erscheinen die Kästchen.

Hanno

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