Hallo,
ich habe zwei mega32 speziell verbunden, damit sie zahlen von 0-9 und zusätzlich + und - austauschen können. der eine prozessor ist eigendlich nur für die tastatur da (Chip1), der andere zum ausgeben der daten.
dem Chip1 habe ich folgenden quellcode aufgespielt:
Code:
Statusout = 1
Led = 0
Call Tastenabfrage()
Sub Tastenabfrage()
Do
Led = 0
If Null = 0 Then
Led = 1
Wert = 0
End If
If Eins = 0 Then
Wert = 1
Led = 1
End If
If Zwei = 0 Then
Wert = 2
Led = 1
End If
If Drei = 0 Then
Wert = 3
Led = 1
End If
If Vier = 0 Then
Wert = 4
Led = 1
End If
If Fuenf = 0 Then
Wert = 5
Led = 1
End If
If Sechs = 0 Then
Wert = 6
Led = 1
End If
If Sieben = 0 Then
Wert = 7
Led = 1
End If
If Acht = 0 Then
Wert = 8
Led = 1
End If
If Neun = 0 Then
Wert = 9
Led = 1
End If
If Plus = 0 Then
Wert = 10
Led = 1
End If
If Minus = 0 Then
Wert = 11
Led = 1
End If
If Enter = 0 Then
Call Eingabe()
End If
Loop
End Sub 'Tastenabfrage
Sub Eingabe()
Statusout = 0
Led = 0
Waitms 5
If Statusin = 0 Then
Statusout = 1
If Wert = 0 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 0
Dezi4 = 0
Dezi5 = 1
End If
If Wert = 1 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 0
Dezi4 = 1
Dezi5 = 0
End If
If Wert = 2 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 0
Dezi4 = 1
Dezi5 = 1
End If
If Wert = 3 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 1
Dezi4 = 0
Dezi5 = 0
End If
If Wert = 4 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 1
Dezi4 = 0
Dezi5 = 1
End If
If Wert = 5 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 1
Dezi4 = 1
Dezi5 = 0
End If
If Wert = 6 Then
Dezi1 = 0
Dezi2 = 0
Dezi3 = 1
Dezi4 = 1
Dezi5 = 1
End If
If Wert = 7 Then
Dezi1 = 0
Dezi2 = 1
Dezi3 = 0
Dezi4 = 0
Dezi5 = 0
End If
If Wert = 8 Then
Dezi1 = 0
Dezi2 = 1
Dezi3 = 0
Dezi4 = 0
Dezi5 = 1
End If
If Wert = 9 Then
Dezi1 = 0
Dezi2 = 1
Dezi3 = 0
Dezi4 = 0
Dezi5 = 1
End If
If Wert = 10 Then
Dezi1 = 0
Dezi2 = 1
Dezi3 = 0
Dezi4 = 1
Dezi5 = 1
End If
If Wert = 11 Then
Dezi1 = 0
Dezi2 = 1
Dezi3 = 1
Dezi4 = 0
Dezi5 = 0
End If
Waitms 5
Dezi1 = 0
Dezi2 = 0
Dezi3 = 0
Dezi4 = 0
Dezi5 = 0
Else
Call Eingabe()
End If
Call Tastenabfrage()
End Sub 'Eingabe
End
also die daten am anfang des quellcodes habe ich mal weggelassen.
der Chip2 hat dieses:
Code:
Statusout = 1
Call Status()
Sub Status()
If Statusin = 0 Then
Waitms 5
Statusout = 0
Call Ziffernabfrage()
Else
Call Status()
End If
End Sub
Sub Ziffernabfrage()
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 1 And Dezi4 = 1 And Dezi5 = 0 Then
Wert = 0
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 1 And Dezi4 = 0 And Dezi5 = 1 Then
Wert = 1
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 1 And Dezi4 = 0 And Dezi5 = 0 Then
Wert = 2
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 0 And Dezi4 = 1 And Dezi5 = 1 Then
Wert = 3
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 0 And Dezi4 = 1 And Dezi5 = 0 Then
Wert = 4
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 0 And Dezi4 = 0 And Dezi5 = 1 Then
Wert = 5
End If
If Dezi1 = 1 And Dezi2 = 1 And Dezi3 = 0 And Dezi4 = 0 And Dezi5 = 0 Then
Wert = 6
End If
If Dezi1 = 1 And Dezi2 = 0 And Dezi3 = 1 And Dezi4 = 1 And Dezi5 = 1 Then
Wert = 7
End If
If Dezi1 = 1 And Dezi2 = 0 And Dezi3 = 1 And Dezi4 = 1 And Dezi5 = 0 Then
Wert = 8
End If
If Dezi1 = 1 And Dezi2 = 0 And Dezi3 = 1 And Dezi4 = 0 And Dezi5 = 1 Then
Wert = 9
End If
If Dezi1 = 1 And Dezi2 = 0 And Dezi3 = 1 And Dezi4 = 0 And Dezi5 = 0 Then
Wert = 10
End If
If Dezi1 = 1 And Dezi2 = 0 And Dezi3 = 0 And Dezi4 = 1 And Dezi5 = 1 Then
Wert = 11
End If
Statusout = 1
Waitms 5
Call Ausgabe()
End Sub
Sub Ausgabe()
If Wert = 0 Then
Led = 0
End If
If Wert = 1 Then
Led = 1
Waitms 100
Led = 0
Waitms 100
End If
If Wert = 2 Then
Led = 1
Waitms 100
Led = 0
Waitms 100
Led = 1
Waitms 100
Led = 0
Waitms 100
End If
Call Status()
End Sub
also wenn ich jetzt [2] +[Enter] drücke müsste der Chip2 das empfangen und die LED müsste 2 mal leuchten (weiter hab ichs noch nicht geschrieben). das problem ist nur, es blinkt nicht!
wer kann mir helfen und sagen wo ich den fehler habe?
mfg Killer
Lesezeichen