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.
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 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
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!