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..
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....
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.. ;)
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
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/
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?
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
;)
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.
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...
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..
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.
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