Hallo,
grundsätzlich steht das im Wiki.
DB0, DB1, DB2 und DB3 auf Masse legen und schau dann mal obs geht.
Gruß
Hi,
ich hab mir gerade dieses Display bei Pollin gekauft.
http://www.pollin.de/shop/shop.php?c...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:
Nur das Display bleibt leider leer und es tut sich nichts.Code:$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."
Hat wer eine Lösung für das Problem ?
mfg Yannic
Hallo,
grundsätzlich steht das im Wiki.
DB0, DB1, DB2 und DB3 auf Masse legen und schau dann mal obs geht.
Gruß
Kollaps einer Windturbine
(oder: Bremsen ist für Anfänger )
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
Du musst noch "Config LCDbus=4" nach "Config LCDpin = pin ..." schreiben. Was man nicht alles so spät am Abend übersieht. \/Zitat von Blamaster
Ansonsten kannste nur noch mal im Wiki lesen. ( https://www.roboternetz.de/wissen/in...om_und_LCD%27s )
Gruß
Kollaps einer Windturbine
(oder: Bremsen ist für Anfänger )
Hm funktioniert irgendwie immer noch nicht.
Lesezeichen