Hallo, Ich habe mal versucht in Bascom einen ein/aus Taster zu programmieren. Die Variable "Tasterreact" soll dazu dienen den Taster wieder zu aktivieren wenn man den Taster wieder los lässt, da sonst ja gleich wieder alles ausgeschaltet wird wenn man den Taster zu lange drückt. Dim An As Bit Dim Tasterreact As Bit Ddrb = &B00000011 Portb = &B00000100 An = 0 Tasterreact = 1 Do If Pinb.2 = 0 Then If Tasterreact = 1 Then Portb.1 = 1 If An = 0 Then Portb.0 = 1 An = 1 Tasterreact = 0 Else Portb.0 = 0 An = 0 Tasterreact = 0 End If End If Else Tasterreact = 1 End If Loop End Kann man das irgendwie besser machen.
Kannst du mir das kurz mal aufschreiben wie das geht ich bekommst nicht so wirklich hin.
Hi, ich hab es ein bischen anders gemacht.$sim $regfile = "8535def.dat" Config Portb = Input Dim An As Byte Config Debounce = 30 do Debounce Pinb.2 , 1 , Taster , Sub loop End 'end program taster: incr an if an > 1 then an = 0 Cls Home Lcd "aus" Else an = 1 Cls Home lcd "an" End If return Mfg Dirk
Hallo Dirk Müste noch einfacher gehen wenn Du in der Routine Taster den Befehl Toggle verwendest. Gruß Michael
Hallo Dirk und Thomas Anbei mein Vorschlag, Gruß Michael. $regfile = "8515DEF.DAT" Config Portd = Input 'Hier ist eine Taste angeschlossen Config Portb = Output 'hier ist eine LED angeschlossen Config Debounce = 100 Set Portb.0 Do Debounce Pind.0 , 0 , Schalter , Sub Loop Schalter: Toggle Portb.0 Return End 'end program
Eigentlich müsste das doch auch mit 3 Tastern und 3 LEDs gehen: Ddrb = &B00000111 Portb = &B00111000 Do Debounce Pinb.3 , 0 , Einaustaster1 , Sub Debounce Pinb.4 , 0 , Einaustaster2 , Sub Debounce Pinb.5 , 0 , Einaustaster3 , Sub Loop End Einaustaster1: Toggle Portb.0 Return Einaustaster2: Toggle Portb.1 Return Einaustaster3: Toggle Portb.2 Return Nur irgendwie leuchtet die 3.LED durchgehend. Woran liegt das ?
Hallo Thomas Prüf noch mal das Data-direction Register. Ich habe nur eine winzige Änderung gemacht und Ein/Ausgänge auf mein STK500 Board abgestimmt und es geht einwandfrei. Noch ein Hinweis: Bei manchen Prozessoren (CC-Basic) darf man erst toggeln nachdem ein Anfangszustand definiert wurde Gruß Michael $regfile = "8515DEF.DAT" Config Portd = Input Config Portb = Output Config Debounce = 100 Do Debounce Pind.0 , 0 , Schalter1 , Sub Debounce Pind.1 , 0 , Schalter2 , Sub Debounce Pind.2 , 0 , Schalter3 , Sub Loop Schalter1: Toggle Portb.0 Return Schalter2: Toggle Portb.1 Return Schalter3: Toggle Portb.2 Return End 'end program
Ok Danke. Ich weis jetzt worans gelegen hat. Ich hab nur die ISP abgesteckt und schon hat alles funktioniert.
Hallo zusammen! hab da ein proplem und hoffe mir kann hier geholfen werden.Erstmal der code $regfile = "atTiny13.dat" $crystal = 1200000 $hwstack = 24 $swstack = 16 $framesize = 32 Config Portb.0 = Input 'Hier Taster1 Config Portb.2 = Output 'Hier Led1 Config Portb.1 = Input 'Hier Taster2 Config Portb.3 = Output 'hier Led2 Config Debounce = 100 Reset Portb.2 Reset Portb.3 Set Portb.0 Set Portb.1 Do Debounce Pinb.0 , 0 , Schalter1 , Sub Debounce Pinb.1 , 0 , Schalter2 , Sub Loop Schalter1: Portb.2 = 1 Wait 2 Portb.2 = 0 Return Schalter2: Portb.3 = 1 Wait 1 Portb.3 = 0 Return End so und jetz mein problem. ich brauche gleichzeitig 2 funktionen und bring das einfach nicht auf die reihe. wenn zb.taste 1 kurz getrückt wird,soll eine zeit ablaufen die erst led 1 dann led 2 einschaltet und später beide ausschaltet.dennoch soll in dieser zeit auch taste 2 eine zeit steuerfunktion haben.sobald ich bei portb 2 ein WAIT einsetze,ist die funktion für taste 2 ausser betrieb. wie kann man das anders machen??wäre nett wenn ich hier hilfe bekomm.danke im vorraus!
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.