Die Ansteuerung muss wies schaut zu Fuß gemacht werden,
hab erste "Linien" darauf dargestellt bekommen,
die Löterei war etwas fummelig, aber machbar.
Habs mit nem Mega16 angesprochen, über SPI.
mein Testprogrämmchen für den Anfang:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 19200
Dim D_byte As Byte
Dim Col As Byte
Dim Page As Byte
Dim Pointer As Byte
Dim X_byte As Byte
Dim Y_byte As Byte
Ddrb = &B00011111
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 1 , Clockrate = 4 , Noss = 0
Spiinit
'----------------------------------------------------------
' LCD
'----------------------------------------------------------
A Alias Portb.0 ' A0
Res Alias Portb.1 ' Reset
Cs1 Alias Portb.2 ' CS
Cs2 Alias Portb.3 ' /CS
A = 1
Cs1 = 1
Cs2 = 0
Res = 0
Wait 2
Res = 1
A = 0
' Initialisierung des LCD
D_byte = &B10001100 ' Kontrast einstellen
Spiout D_byte , 1
D_byte = &B10100010 ' LCD-Bias = 1/6
Spiout D_byte , 1
D_byte = &B10100001 ' gespiegelte Anzeige
Spiout D_byte , 1
D_byte = &B00101111 ' integrierter Spannungswandler ein
Spiout D_byte , 1
D_byte = &B10101111 ' Display ein
Spiout D_byte , 1
D_byte = &B01000000 ' start Dispay line
Spiout D_byte , 1
D_byte = 0
Waitms 50
X_byte = 1
A = 1
' ########### Mainloop ########################################
Do
Spiout X_byte , 1
Incr Pointer
If Pointer > 120 Then
Incr Page
If Page > 7 Then
Page = 0
Waitms 300
Shift X_byte , Left , 1
Incr X_byte
If X_byte > 254 Then X_byte = 0
End If
A = 0
D_byte = &B10110000
D_byte = D_byte Or Page ' select page
Spiout D_byte , 1
D_byte = &B00000000 ' auf Startposition zurück
Spiout D_byte , 1
Waitus 5
A = 1
Pointer = 0
End If
Loop
End
Lesezeichen