mikrocontroller.net

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


Autor: Hanno Gräff (hanno)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hanno Gräff (hanno)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
wohl vergessen die Datei anzuhängen. Sorry

Hanno

Autor: Markus L. (lucky79)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Hanno Gräff (hanno)
Datum:

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

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hanno Gräff (hanno)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus L. (lucky79)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hanno Gräff (hanno)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

nur auf der oberen Zeile erscheinen die Kästchen.

Hanno

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.