Archiv verlassen und diese Seite im Standarddesign anzeigen : Lcd ansteuern mit Atmega 16 ?
Blamaster
06.10.2007, 21:47
Hi,
ich hab mir gerade dieses Display bei Pollin gekauft.
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=OTc1OTc4OTk=
Erstmal hab ich das Poti für den Kontrast angeschlossen, das klappte auch schon mal alles super.
Dann hab ich die Pins wie folgt belegt:
Atmega16 PinD0 an an DB 4
Atmega16 PinD1 an an DB 5
Atmega16 PinD2 an an DB 6
Atmega16 PinD3 an an DB 7
Atmega16 PinD4 an RS
Atmega16 PinD5 an E
und R/W hab ich auf Masse gelegt.
Dann hab ich versucht das ganze mit folgendem Code anzusteuern:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 =Portd.3 , E = Portd.5 , Rs = Portd.4
Cls
Locate 1 , 1
Lcd "Hello world."
Nur das Display bleibt leider leer und es tut sich nichts.
Hat wer eine Lösung für das Problem ?
mfg Yannic
Murdoc_mm
06.10.2007, 22:55
Hallo,
grundsätzlich steht das im Wiki.
DB0, DB1, DB2 und DB3 auf Masse legen und schau dann mal obs geht.
Gruß
Blamaster
06.10.2007, 23:34
Hab ich gemacht, bringt leider auch nichts
Hallo Blamaster,
evtl. ist ein Tipp dabei:
- groszügige Verzögerungsschleifen (Display Controller sind keine Rennflitzer)
- Abfrage des Busy-Flags
-----------------------------------------------------------------------
Display_initiieren:
rcall warte20 ; Reset vom Display abwarten
ldi Befehl,0b00111000 ; Befehl "Function Set"
rcall Display_Befehl_schreiben
rcall warte20
rcall Display_Befehl_schreiben
rcall warte10
rcall Display_Befehl_schreiben
rcall warte1
rcall Display_bereit
ldi Befehl, 0b00111000 ; lade Befehl "2-zeilig, 5x8"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b00001000 ; lade Befehl "Display aus"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000000001 ; lade Befehl "Display löschen"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000000110 ; Befehl "Cursor nach rechts"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000001111 ; lade Befehl "Display ein"
rcall Display_Befehl_schreiben
ret
-----------------------------------------------------------------------
Erklärungen:
- rcall wartenxx: Subroutine mit Verzögerung um xx mSekunden
- rcall Display_Befehl_schreiben: Subroutine, die Datenport auf "schreiben" setzt und Befehl ausgibt
- rcall Display_bereit: Subroutine die Datenport auf "lesen" setzt und wartet, bis das Busy-Flag frei ist
Gruß.
Ich habe das Polin Board mir dem neuen Addon.Board verbunden.
So funktioniert es bei mir.
$regfile = "m16def.dat" 'definieren des verwendeten Chips
$crystal = 8000000 'definieren des verwendeten externen Quarz (8MHz)
Dim A As Byte 'dimensionieren der verwendeten Variablen
Dim B As Byte
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portb.0 , Rs = Portb.2
Ddrd = &B11100000 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
Ddra = &B11111111 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Porta = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
Ddrb = &B11111111 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portb = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
Cls
Initlcd 'initialisiert das LCD
Cls
'Locate 1 , 1
Lcd "PortA 4-7 B1-B3 "
Lowerline
Lcd "Polin AddonBoard"
usw.
Die Anschlüsse PA5-Pa7 wurden auf PB5 - PB7 verbunden.
PB1 an R/W, PB0 an E und PB2 an RS
Gruß
Kurt
Murdoc_mm
07.10.2007, 00:36
Hab ich gemacht, bringt leider auch nichts
Du musst noch "Config LCDbus=4" nach "Config LCDpin = pin ..." schreiben. Was man nicht alles so spät am Abend übersieht. \:D/
Ansonsten kannste nur noch mal im Wiki lesen. ( https://www.roboternetz.de/wissen/index.php/Bascom_und_LCD%27s )
Gruß
Blamaster
07.10.2007, 13:30
Hm funktioniert irgendwie immer noch nicht.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.