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.