Mit einer zusätzlichen Variable geht's auch ohne blockieren:
GrußCode:Do If Taster = 0 And Schalt_freigabe = 0 Then Toggle Led Schalt_freigabe = 1 Elseif Taster = 1 And Schalt_freigabe = 1 Then Schalt_freigabe = 0 End If Waitms 20 loop
Rolf
Hi,
noch ein etwas "unsauberer" Weg ohne zusätzliche Variablen:
So lange der Taster gedrückt gehalten wird, hängt der Mikrocontroller in der while wend schleife fest.Code:Taste Alias Pina.0 Led Alias Porta.1 If Taste = 0 Then Toggle Led End If While Taste =0 Wend Waitms 20
Sobald losgelassen wird, kann direkt wieder umgeschaltet werden.
Ein wenig Verzögerung nach dem Taste loslassen ist noch drin, zum entprellen.
Das Ganze ist aber nicht gerade elegant, da man sich, wie gesagt, den µC während des Tastendrucks blockiert.
Für mal eine LED zu schalten dürfte es aber gehen![]()
Mit einer zusätzlichen Variable geht's auch ohne blockieren:
GrußCode:Do If Taster = 0 And Schalt_freigabe = 0 Then Toggle Led Schalt_freigabe = 1 Elseif Taster = 1 And Schalt_freigabe = 1 Then Schalt_freigabe = 0 End If Waitms 20 loop
Rolf
hey danke^^
funzt jez
Hallo zusammen .
Ich hatte jetzt genau diesen Teil gesucht aber beim testen bekomme ich einen Fehler angezeigt .Zuerst mein Code :
$regfile = "m8def.dat"
$framesize = 8
$swstack = 8
$hwstack = 8
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Led Alias Portb.0
Config Pinb.1 = Input
Taster Alias Pinb.1
Portb.1 = 1
Do
If Taster = 0 And Schalt_freigabe = 0 Then
Toggle Led
Schalt_freigabe = 1
Elseif Taster = 1 And Schalt_freigabe = 1 Then
Schalt_freigabe = 0
End If
Waitms 20
Loop
Invalid datatyp
If Then expected
If Then expected (16)
End If expected
Ich binn ein kompletter Neueinsteiger
aber ich denke das mir hir geholfen werden kann mit Eurer Hilfe .
Gruss Manuel
Hallo!
Mach mal " Dim Schalt_freigabe As Byte " rein.
MfG
Rone
Hallo Manuel,
der Fehler ist, dass Du in der Hauptschleife mit der Variablen schalt_freigabe arbeitest, die Du vorher nirgendwo definiert hast. Das versteht Bascom nicht!
Da sie offensichtlich nur die Werte 0 und 1 annehmen kann, würde hier ein Bit reichen. Wenn Du diese Zeile vor die Haupschleife stellst
Dim schalt_freigabe as bit
müsste zumindest das Kompilieren klappen
Viel Erfolg,
Daniel
Edit: Oops - klassischer "Doppelpost"![]()
Lesezeichen