Hallo, da mir leider keiner mit dem GraphLCD weiterhelfen konnte, habe ich mir ein 16x4 LCD (http://www.produktinfo.conrad.com/da..._LED_de_en.pdf) gekauft um damit weiter zu testen.
Unter meinem Atmega8515 habe ich es zum laufen bekommen, jedoch unter dem Atmega128 nicht. Nur diesen brauche ich wegen den AD Eingängen.
Bei mir ist die 1. und 3. Zeile des Displays mit schwarzen Kästchen gefüllt. Die 2. und 4. Zeile ist leer.
Habe das Gefühl als würde es nicht richtig initialisieren, nur wieso weiß ich nicht.
Mein Code ist für den 8515 und 128er der selbe, nur die Ports halt angepasst.
Woran kann das liegen? Meine Test LED wie im Code beschrieben zeigt auch keine Reaktion.
Code:
'#### Prozessordaten definieren
$regfile = "m128def.dat"
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
$crystal = 800000
$baud = 9600
'#### Alias für Port Namen
Led Alias Portb.0
'#### Port definieren (inp/out)
Config Led = Output
'#### Port Status: 1 = aus (0V); 0 = an (5V)
Led = 0
'Meine Konfig
'NC = Db.0
'NC = Db.1
'NC = Db.2
'NC = Db.3
'Porte.4 = Db.4
'Porte.5 = Db.5
'Porte.7 = Db.6
'Porte.6 = Db.7
'Porte.3 = E
'Porte.2 = Reset
'GND = R/W
'#### LCD einrichten
Initlcd
Config Lcdpin = Pin , Rs = Porte.2 , E = Porte.3 , Db4 = Porte.4 , Db5 = Porte.5 , Db6 = Porte.7 , Db7 = Porte.6
Config Lcd = 16 * 4
Config Lcdbus = 4
Cursor Off Noblink
Wait 1
Do
Wait 1
Led = 1
Wait 1
Led = 0
Wait 10
Dim Initcounter As Byte
Dim Bt As Byte
Dim S As String * 2
Do
For Initcounter = 1 To 36
'LCD löschen
Cls
'Haupttext der ersten Zeile anzeigen
Locate 1 , 1
Lcd "...Zeile1..."
'Haupttext der zweiten Zeile anzeigen
Locate 2 , 1
Lcd " ...Zeile2..."
'Jede Sekunde um 1 hochzählen und neuen Wert anzeigen
For Bt = 1 To 99
'Neuen Wert in einen Text umwandeln
S = Str(bt)
S = Format(s , "00")
'Neuen Wert in der ersten Zeile ab Spalte 15 anzeigen
Locate 3 , 8
Lcd S
Locate 3 , 5
Lcd ">>>"
Locate 3 , 10
Lcd "<<<"
'Neuen Wert in der zweiten Zeile ab Spalte 15 anzeigen
Locate 4 , 8
Lcd S
'Eine Sekunde warten
'Goto Led12
Wait 1
Next Bt
'Das LCD nach ca. einer Stunden neu initialisieren
If Initcounter = 36 Then
Initlcd
End If
Next Initcounter
Loop
Loop
End
Lesezeichen