mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [AVR] LCD an veränderten Pins ansteuern


Autor: Patrick L. (crashdemon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze die LCD-Routine aus dem AVR-GCC Tutorial, da ist der Code 
aber für die Datenpins PD0-PD3 angepasst, jetzt habe ich aber das 
problem das ich auch den USART benötige und somit die PINS PD0 und PD1 
schon belegt sind, also habe ich ich jetzt die Datenpins auf PD4-PD7 
verlegt, was natürlich eine Änderung veränderung im bestehenden Code 
benötigt, jetzt habe ich die zuweisungen nach LCD_PORT &= 0x0F; 
geändert, funktionieren tut es aber nicht, es kommen nur kryptische 
zahlen am LCD an, vllt. kann mir jemand einen Tipp gegeben was ich 
falsch mache.

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pins vertauscht? Adressierung korrekt? Aufschluss "kann" die 
Zeichentabelle des Datenblattes bieten, da kann man ablesen, was man 
vertauscht hat :)

Reagiert es denn überhaupt sauber auf die Commands, also Steuerbefehle 
wie CURSOR HOME etc???

Klaus.

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> jetzt habe ich die zuweisungen nach LCD_PORT &= 0x0F; geändert

Aha...... schön

Aber mit C allgemein hast du nicht so deine Probleme oder??

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LCD an völlig beliebigen Pins:

http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip


Peter

Autor: Patrick L. (crashdemon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus R. wrote:
> Pins vertauscht? Adressierung korrekt? Aufschluss "kann" die
> Zeichentabelle des Datenblattes bieten, da kann man ablesen, was man
> vertauscht hat :)
>
> Reagiert es denn überhaupt sauber auf die Commands, also Steuerbefehle
> wie CURSOR HOME etc???
>
> Klaus.

Ne, reagiert im mom. nur mit kryptischen Zeichen, als ich die datenpins 
des LCD noch wie im tutorial beschrieben an PD0-PD3 angeschlossen hatte 
funktionierte alles wunderbar, ich denke eher ich hab da einen 
denkfehler bei der anpassung der bestehenden lcd-routine, habe ja bis 
jetzt nur alle zeilen mit :LCD_PORT &= 0xF0 in LCD_PORT &= 0x0F 
umgeändert, weiß nicht ob das reicht.

Pinbelegung ist im moment:

RS PD2
EN PD3
DB4 PD4
DB5 PD5
DB6 PD6
DB7 PD7

Autor: Patrick L. (crashdemon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger wrote:
> LCD an völlig beliebigen Pins:
>
> http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip
>
>
> Peter

Wollte eigentlich die bestehende Routine verwenden, es muss doch mit 
einer kleinen Änderung möglich sein, die Datenpins anzupassen?

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...weiß nicht ob das reicht.

-> Rate mal...

Du musst erstmal den Port initialisieren, also ob die Pins ein oder 
ausgänge sind, dann ob mit oder ohne pullup und ob, falls ausgang, hi 
oder low.

woher soll der uC wissen, welche daten/commandleitung überhaupt an 
welchen pin angeschlossen ist???

also, tasse tee kochen, hinsetzen und NOCHMAL alles lesen im avr 
tutorial - denn verstanden hast du es scheinbar noch nicht, oder?!

Klaus.

Autor: Patrick L. (crashdemon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus R. wrote:
> ...weiß nicht ob das reicht.
>
> -> Rate mal...
>
> Du musst erstmal den Port initialisieren, also ob die Pins ein oder
> ausgänge sind, dann ob mit oder ohne pullup und ob, falls ausgang, hi
> oder low.
>
> woher soll der uC wissen, welche daten/commandleitung überhaupt an
> welchen pin angeschlossen ist???
>
> also, tasse tee kochen, hinsetzen und NOCHMAL alles lesen im avr
> tutorial - denn verstanden hast du es scheinbar noch nicht, oder?!
>
> Klaus.

Ne so ganz habe ich das noch nicht verstanden, kann mir denn mal jemand 
diese Zeile erläutern:
LCD_DDR = LCD_DDR | 0x0F | (1 << LCD_RS) | (1 << LCD_EN);

1 << LCD_RS und 1 << LCD_EN ist klar, also die Pins PD2 und PD3 als 
Ausgang initialisieren, aber was wird mit dem 0x0F gemacht, ein 
bestimmter bereich ausmaskiert?

Autor: Patrick L. (crashdemon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es jetzt selbst geschafft, den bestehende code so umzuändern das er 
für meine pinbelegung passt, man lernt so warscheinlich viel mehr als 
wenn man einfach die lösung serviert bekommt, das habt ihr euch wohl 
auch gedacht, deshalb ein dank an alle die mir geholfen haben.

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.