Forum: Mikrocontroller und Digitale Elektronik myavr lcd / Schaltplan /lcd routinen


von Versager (Gast)


Lesenswert?

Moin,

ich sitze jetzt den dritten Tag daran das LCD meines myavr boards zu 
Programmieren, um es gleich vorweg zu nehmen, es geht garnichts, ich 
scheiter einfach daran diese lcd routinen umzuprogrammieren, ich denke 
ich muss mal ganz unten anfangen, sonst bekomme ich da nie nen Fuß an 
den Boden.

Um zum Beispiel nen Display zu clearen, wäre der Hex-Code 0x01, d.h. das 
Bit D0 auf 1 liegt und alle anderen auf 0, nur wie soll ich D0 auf 1 
setzen wenn dieses laut Schaltplan garnicht angeklemmt sind?!?

Laut Schaltplan ist nur Db 4-7  RS  E /RW und die 
Hintergrundbeleuchtung angeklemmt..

von Juhu (Gast)


Lesenswert?

Stichwort: 4-bit Modus, also nacheinander 2 Nibbles schicken

von Niels H. (monarch35)


Lesenswert?

Versager wrote:
> Laut Schaltplan ist nur Db 4-7  RS  E /RW und die
> Hintergrundbeleuchtung angeklemmt..

Das ist korrekt. Das Display wird offensichtlich im 4Bit-Modus 
betrieben, das  bedeutet, daß zuerst das High- und dann das Low-Nibble 
eines Bytes in zwei getrennten Schreiboperationen übertragen werden.

Vieleicht erzählst du mal, welche Quellen du gerade versuchst 
umzuschreiben....

von Neue Hoffnung (Gast)


Lesenswert?

Zuerst hab ich ausprobiert die Routine ausm gcc tutorial zu übernehmen, 
ich war schon so weit das ich das ganze im wincc compiler ohne fehler 
kompilieren konnte. So wie es aussieht passen die Ports aber in keinster 
weise, also hab ich versucht das anzupassen.

// Pinbelegung für das LCD, an verwendete Pins anpassen

#define LCD_PORT      PORTD
#define LCD_DDR       DDRD
#define LCD_RS        2              //Rs bit
#define LCD_EN        3              //Port D 3 LCD Enable

Aber das wird wohl etwas aufwändiger, da ich ja so erstmal keine 
Möglichkeit hab die einzelnen Pins zu definieren, sondern nur den Port.. 
und das bringt ja schonwieder das nächste Problem..

Also wenn ich das richtig verstehe kann ich dem Display quasi sagen 
welche 4 Bit ich welchem Bereich zuordne?

Ich werde morgen mal etwas konkreter mein Kopf ist voll nach dem ganzen 
rumprobieren.. ;)

von Stephan G. (gamps)


Angehängte Dateien:

Lesenswert?

Hier ist eine Routine mit der Du die Ports einzeln einstellen kannst 
(lcd.h)

Funktioniert dann auch mit dem myAvr Display.
Benutzt Du auch ein Programmer Board von myAvr ?

Wenn nicht, dann mußt Du aufpassen wie die Pins des LCD Displays auf
die Pins der myAVR LCD Platine rausgeführt werden. In der Beschreibung 
ist
nämlich ein Fehler. LCD Pin1 und 2 sind vertauscht.
Gruß


Stephan

von es funkt es funkt (Gast)


Lesenswert?

Danke Danke!!

Mittlerweile hab ich doch noch eine Routine gefunden die passend fürs 
myAvrboard mit dem dazugehörigen LCD ist!!

werd mir das mal näher betrachten und sicherlich noch die ein oder 
andere Frage haben!!

Für alle die noch suchen hier der passende link!

http://roman.mainer.de/mikrocontroller/avr/myavr_lcd/

von Niels H. (monarch35)


Lesenswert?

Dem Quellcode nach konnte das mit dem Code aus dem GCC-Tutorial nicht 
funktionieren. MyAVR scheint den Port so belegt zu haben:

DB4-7    PortD4-7
RS       PortD2
E        PortD3

Das Tutorial hingegen erwartet, das der Datenbus auf PortD0-3 und RS und 
E auf PortD4&5.

Das bedeutet, daß die aleinige Anpassung von RS & E im Tutorial das Ding 
noch nicht zum funktionieren bringen kann.

Wenn mal einer von euch die Portbelegung vom MyAVR früher gepostet 
hätte, hättet ihr bestimmt nicht alleine solange suchen müssen. War denn 
beim MyAVR-Board kein beispielcode dabei?

von es funkt es funkt (Gast)


Lesenswert?

Ich habs wohl nen bischen blöd geschrieben, oben hab ich versucht zu 
erklären das sich die ports nicht vernünftig anpassen lassen ;)

War leider kein c-code dabei, ich glaub in dem Übungsheft ist einer drin 
aber das muss man extra kaufen.

Nach wie vor find ich den Aufwand um nen lcd hell zu kriegen viel zu 
hoch, in der schule haben wir nen anderes experimentierboard wo wir mit 
keil arbeiten, da schickt man die hex-codes zum initialisieren einfach 
an ne adresse und fertig ist die kiste.. bin halt nen bischen verwöhnt 
;)

von Niels H. (monarch35)


Lesenswert?

es funkt es funkt wrote:

> Nach wie vor find ich den Aufwand um nen lcd hell zu kriegen viel zu
> hoch

Das da kein Beispielcode und keine Pinbelegung bei sein soll, kann ich 
kaum glauben. Wenn dem so sein sollte, hast du natürlich recht. 
Zumindest wäre dann von MyAVR für Anfänger abzuraten.

Das Keil wirklich besser sein soll, kann ich aber kaum glauben.

von Niels H. (monarch35)


Lesenswert?

Nachdem ich mich jetzt mal interessehalber selbst umgeschaut habe, muss 
ich sagen, das die hier aufgestellten Behauptungen falsch sind.

Im Downloadbereich von MyAVR (http://www.myavr.de/download.php) findet 
man sowohl technische Detailinformationen (Archiv_MyAVRLCD_22.zip) mit 
der Pinbelegung, sowie eine Testapplikation (LCD_TEST.HEX) für das LCD.

Die hier genannten Startschwierigkeiten sind also hausgemacht...

von es funkt es funkt (Gast)


Lesenswert?

ne pinbelegung ist dabei, das ist auch alles super dokumentiert, gerade 
für Anfänger haben die da viel gemacht, sogar nen paar basics wie man 
richtig lötet etc.

Zum Testen der Komponenten ist ein kleines Programm dabei mit dem man 
verschiedene Beispielprogramme brennen kann um zum Beispiel das LCD zu 
testen..nen Quellcode kriegt man da jedoch nicht zu Gesicht.

Zusätzlich gibt es noch eine DemoVersion von myAvr Workpad, aber in der 
Demoversion sind nur ein paar Assembler Vorlagen wie man zum Beispiel 
nen Port auswertet etc.

LCD fehlt völlig, dazu müsste man dann schon die Vollversion kaufen ;)

Nichts desto trotz hab ich jetzt 26 Euro für das Bord+LCD+CD bezahlt, 
das ist ja eigentlich nen Preis der in Ordnung geht..

von es funkt es funkt (Gast)


Lesenswert?

irgendwie verstehen wir uns immer falsch ;)
ich hab doch nie behauptet keine pinbelegungen zu haben

von Niels H. (monarch35)


Lesenswert?

es funkt es funkt wrote:

> ich hab doch nie behauptet keine pinbelegungen zu haben

Tja, wenn einer von euch die mal früher gepostet hätte, hätte auch 
jemand helfen können, der myavr nicht hat. Mich also eingeschlossen.

von es funkt es funkt (Gast)


Lesenswert?

ich hab mich doch garnicht beschwert das es lange oder zu lange gedauert 
hätte
mich hat auch nie einer nach der pinbelegung gefragt

eigentlich beschwer ich mich über garnichts, alles läuft und ich bin 
zufrieden

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.