die "waitms 1000" is schon zuverlässig aber, wen man die led direckt wieder aus schalten will muss man erst noch warten, ich würde das mit den "And letzteTaste = 0" gerne mal ausprobieren
Sorry, mein Beispiel war auch nicht 100% korrekt glaube ich.
Nach der Zeile "angeschaltet = 0" fügst du ein waitms 1000 ein.
Nach der Zeile "angeschaltet = 1" fügst du auch ein waitms 1000 ein.
Viele Grüße, William
-> http://william.thielicke.org/
die "waitms 1000" is schon zuverlässig aber, wen man die led direckt wieder aus schalten will muss man erst noch warten, ich würde das mit den "And letzteTaste = 0" gerne mal ausprobieren
das AND letzteTaste = 1 packst du an deine beiden If Abfragen an
folgender pseudocode (bascom iss nich mein ding)
jetztTaster = Taster
If jetztTaster == 1 and letzterTaster == 0
If Licht == 1
LichtAUS
Licht = 0
else
LichtAN
Licht = 1
End If
End If
letzterTaster = jetztTaster
den umweg über den "jetztTaster" musst du machen, sonst würde das ärger geben, wenn der taster während der bearbeitung den wert wechselt!!!
drückst du den knopf, geht der Tasterwert von 0 auf 1, in der abfrage ist letzterTaster noch 0 und jetztTaster 1, die lichtabfrage wird gemacht und geschalten, bleibt der taster gedrückt, sind ständig beide letzterTaster und jetztTaster 1, also ignoriert er das, lässt du ihn los, wird letzterTaster nach einer abfrage auch 0 und wenn du das nächtse mal drückst gehts wieder von vorne los
jetztTaster ist auch eine variable und kein befehl!
genauso wie letzterTaster
ausserdem solltest du das "and blabla " an die bedingung anknüpfen und nicht irgendwo ddranhängen!
PS wenn du code schreiben willst, benutz die [ c o d e ]dein quelltext [ / c o d e ] klammern! einfach vorne und hinten dran machen wie du siehst und natürlich die leerzeichen dazwischen weglassenCode:$regfile = "m8def.dat" $framesize = 60 $swstack = 60 $hwstack = 60 $crystal = 8000000 $baud = 9600 Config Portb.0 = Output Led Alias Portb.0 Config Pinb.1 = Input Taster Alias Pinb.1 Portb.1 = 1 Dim Angeschaltet As Bit Dim LetzerTaster As Bit Dim JetztTaster As Bit Do JetztTaster = Taster If JetztTaster = 1 And letzterTaster = 0 And Angeschaltet = 1 Then Led = 0 '(ist das jetzt LED an oder LED aus ?) Angeschaltet = 0 Elseif JetztTaster = 1 And letzterTaster = 0 And Angeschaltet = 0 Then Led = 1 Angeschaltet = 1 End If letzterTaster = JetztTaster Loop End
kann es sein dass dir nciht ganz klar ist WAS du da geschriebn hast ? deine if abfragen sind total wirr und unlogisch, du musst mal verscuhen dir die if abrfragen in deutsch vorzustellen und ne tabelle mit den zuständen aufzeichnen
If JetztTaster = 1 And letzterTaster = 0 And Angeschaltet = 1 Then
wenn taster jetzt 1 und letztes mal 0 und led AUS, dann led AN
Elseif JetztTaster = 1 And letzterTaster = 0 And Angeschaltet = 0 Then
sonst wenn taster jetzt 1 und letztes mal 0 und led AN, dann led AUS
letztes mal taster = taster jetzt
aso? und was sollte ich statdessen da hin scheiben?
ich bin brutalster anfänger. ich hab so gut wie keine kenntnisse was das programmieren mit Bascom anget, wen du mir befele sagst die es nicht gibt nutzt mir das ganix.
schau nochmal hin, habs editiert
ja tut mir leid ich hab auch grad bissl abgehoben
du hast mit
dim variablenname as datentyp
dim angeschaltet as bit
schonmal ne variable angelegt nur als hinweis
Das ist wie von Ceos bereits gesagt ein "Pseudo-Code"! Den kannste nicht einfach per Copy+Paste einfügen. Damit Bascom das versteht muss z.B. hinter jedes "if" ein "then". Und doppelte "=" Zeichen gibts in Bascom auch nicht. Ausserdem musst du "LichtAUS" und "LichtAN" natürlich auch durch die entsprechenden Befehle ersetzen..... Schreib das um in die richtige Syntax, dann funktionierts bestimmt.
edit: das hat sich dann ja auch erledigt... :-D
Viele Grüße, William
-> http://william.thielicke.org/
jez hab ich es begriffen und verstehe auch entlich wiso das nich klappen knnte^^. nur ein problem hab ich noch, Bascom will mir keine hex datei compilieren. weis einer warum?
der müsste dir theoretisch ne fehlermeldung irgendwo ausgeben, da steht meist auch drin in welcher zeile der fehler liegt
Lesezeichen