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:
also die daten am anfang des quellcodes habe ich mal weggelassen.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
der Chip2 hat dieses:
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!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
wer kann mir helfen und sagen wo ich den fehler habe?
mfg Killer







Zitieren


Lesezeichen