Hallo ich sitze nun schon mehrere Stunden an einem kniffligen Problem... in einer Interruput Servis Routine gebe ich einer Variablen einen Wert zwischen 0 und 4 ( mit einbegriffen) . wenn ich aber nun aus der ISR Raus springe nimmt die Variable den Wert 0 an woran liegt das? sie wird nirgends auf 0 gesetzt...ich verstehe es einfach nicht... Ich arbeite mit Bascom! Gruss AT32
hallo hier ist der Hauptteil, der ISR im Anhang ist mein Komplettes
Programm
ich muss bemerken das ich noch beim programmieren bin und noch nicht
alles Perfekt ist... aber ich möchte eins nach dem andren machen...
Hoffe ihr erkennt was...
'***********************************************************************
***
If Taste = "#" Then 'wird die taste
"#" gedrückt werden soll eine Ziffer im Passwort gelöscht werden
Anzahl = Len(eingabe)
If Anzahl < 2 Then ' ist die
Anzahl kleiner als 2 , also 1 oder 0
Anzahl = 0 ' wird sie 0
Eingabe = "" 'Der string
"Eingabe" wird gelöscht
Else 'sollte die
Zahl grösser oder gleich 2 sein,
Anzahl = Anzahl - 1 'wird Anzahl
um eins minimiert
Eingabe = Left(eingabe , Anzahl) 'auch der
string wird um ein Zichen minimiert
End If
Else 'sollte eine
andere Taste gedrücht werden:
If Len(eingabe) < 4 Then 'muss die
gesamt länge unter 4 zeichen sein
Eingabe = Eingabe + Chr(taste) 'dann wird
eine Ziffer dran gehangen
End If
End If
End If
Locate 2 , 1 'der gesamte
String wird angezeigt "zur Kontrolle"
Lcd Eingabe ; " "
Waitms 100 ' durch den
Getadc Befehl müssen 100ms gewachtet werden
If Len(eingabe) = 4 Then 'sollte der
eingegebene Code dem vorgegebenen Password nicht entsprechen, dann
If Taste = "*" Then
Incr Versuche
If Eingabe <> Passwort Then
Passwort_stimmt = 0
Locate 2 , 10 'wird ein
Nicht OK angezeigt
Lcd "NOK"
Wait 1
If Versuche >= 3 Then
Schluessel_sperren = Schluessel_nummer
Locate 2 , 1
Lcd "3 Versuche "
'!!!!!!!!!!!!!!! 'nur zum Test hier kommt später ein
Zeitvergleich und schlässel wird für eine gewisse Zeit gesperrt
Wait 1
'!!!!!!!!!!!!!!!!!!!!!!!!!nur zur Anzeige...
Enable Timer1 '???ovf1
Entsperren = Zeitvariable + 15 ' Variable
die Minuten hochzählt + 15 !!!!!!!!!
End If
If Versuche >= 3 Then
Versuche = 0 'somit
erhält die erste if Versuche schleige ein end IF <<<<<<<Test!!!!!!
Return
End If
Else 'ansonsten
Locate 2 , 10
Lcd "OK " 'ein ok
Versuche = 0
Portd.6 = 1 'und eine
Led an PortD.6 leuchtet (ist nur zum testen)
Wait 1
Portd.6 = 0
Waitms 500
Passwort_stimmt = 1 'wenn das
Passwort stimmt (1) dann kann aus der Do loop schleife gesprungn werden.
Schluessel_sperren = 0
End If
Eingabe = "" 'der String
gelöcht
Locate 2 , 1 : Lcd " " ' dann wird
die anzeige überschrieben
End If
End If
'und das
wars
Loop Until Passwort_stimmt = 1
Reti
mir fällt grade auf das ich die Uhr schon mit drin getan habe... lasst euch bitte nicht von der ersten Do loop schleife verwirren... die wird noch nicht benutzt und kann raus raus genommen genommen werden...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.