Hallo, also
"Lcddisplay Alias Portd "
verstehe ich so, das der gesamte Port D benutz wird. ich habe aber keinen ganzen mehr frei. nur noch:
PD5 , PD6, PD7, PB0
Ich benutze einen ATMega8. Hier das Programm zum testen. Die Variable(Test_zahl) wird einfach nur hochgezählt um zu sehen, ob sich etwas im Display tut. Den Teil, den ich in di die Do...Loop schleife gesetzt habe nehme ich noch raus in eine Sub Routine.
Code:$regfile = "m8def.dat" ' IC-Typ $crystal = 3686400 '$crystal = 16000000 '$baud = 57600 'Lcddisplay Alias PortC 'Config Lcddisplay = Output Config Lcddisplay = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 Oc1 Alias Portd.3 Config Oc1 = Output Oc2 Alias Portd.4 Config Oc2 = Output Ex Alias Portc.2 Config Ex = Output Dim Parameter As Byte Dim Xparameter As Byte Dim Command As Byte Dim Zeile As Byte Dim I As Byte Dim Char As Byte Dim Xchar As String * 1 Dim Text As String * 16 Dim Xxchar As String * 1 Dim Xxxchar As Byte Dim Test_zahl As Byte Reset Oc1 Reset Oc2 Reset Ex Declare Sub Init() Declare Sub Command(command As Byte) Declare Sub Disp(xchar As Byte) Declare Sub Zeile(xzeile As Byte) '------------ 'Hautprogramm '------------ Call Init Do Zeile = $00 Call Zeile(zeile) Text = "Test: " + Str(test_zahl) '"0123456789ABCDEF" Gosub Ausgeben Zeile = $40 Call Zeile(zeile) Text = "GHIJKLMNOPQRSTUV" Gosub Ausgeben Zeile = $80 Call Zeile(zeile) Text = "WXYZ!,$%&/()=?`*" Gosub Ausgeben Zeile = $c0 Call Zeile(zeile) Text = "@+#'<>|^{[]};_-." Gosub Ausgeben Wait 1 Incr Test_zahl Loop '------------------ 'Ende Hauptprogramm '------------------ '---------- Sub Init() '---------- Parameter = $d8 Call Command(parameter) Parameter = $50 Call Command(parameter) Parameter = $33 Call Command(parameter) Parameter = $01 Call Command(parameter) Waitms 2 End Sub '----------------------------- Sub Command(command As Byte) '----------------------------- Xparameter = Command Shift Xparameter , Right , 4 Lcddisplay = Xparameter Set Ex Waitus 1 Reset Ex Lcddisplay = Command And $0f Set Ex Waitus 1 Reset Ex Waitus 20 End Sub '-------------------------- Sub Zeile(xzeile As Byte) '-------------------------- Parameter = Xzeile Set Oc1 Set Oc2 Call Command(parameter) Reset Oc1 Reset Oc2 Waitus 100 End Sub '------------------------ Sub Disp(xchar As Byte) '------------------------ Set Oc2 Parameter = Xchar Call Command(parameter) Reset Oc2 End Sub '--------- Ausgeben: '--------- For I = 1 To 16 Xxchar = Mid(text , I , 1) Xxxchar = Val(xxchar) Char = Asc(xxchar) If Char = 0 Then Char = $20 End If Call Disp(char) Next I Return







Zitieren
Lesezeichen