hmm, ich würde es so machen:
Code:
'hier davor noch das übliche geschribsel. statt den buchstaben x,y,p und q,
'die gleich noch kommen musst du dir eben die entsprechenden
'Portnamen bzw die pinnummern eingeben
PINx.y = Input 'Pin y von Port x als Eingang
PORTx.y = 1 'Pullup von dem pin an
Taster Alias PINx.y 'Pin y von port x heißt jetzt "Taster"
Portp.q = Output 'Pin q von Port p ist dein output, wird nach 3 sec taster=0 getoggelt
Ausgang Alias Portp.q 'jetzt heißt der pin q von port p "Ausgang
dim Zähler as byte 'Variable "Zähler" deklariert
'Hauptschleife kommt jetzt:
Do
Zähler = 0 'das setzt den Zähler wieder zurück, wenn die While-schleife
'unterbrochen wurde. wird auch gebraucht, damit "Zähler"
'einen bestimmten Wert hat, wenn die While-Schleife beginnt
while Taster = 0 'der Taster an Pin y von Port x muss nach GND gehen,
'darum ist logisch 1 hier low, also 0. wenn Taster = 1,
'dann hört die while-schleife auf, wird über die Do-Loop-Schleife
'aber immer wieder aufgerufen. dadurch wird nach jeder
'Tasterunterbrechung neu angefangen zu zählen
Zähler = Zähler + 1 'Die Variable "Zähler wird um 1 erhöht
if Zähler = 30 Then 'wenn Zähler 30 mal um eins erhöht wurde,
'was aufgrund der waitms-funktion nur 10mal pro sec passiert,
'dann
toggle Ausgang 'wird der ausgang getoggelt
Zähler = 0 'der zähler wieder rückgesetzt
endif 'und neu angefangen
waitms 100 'das ist die waitms- funktion. wenn du genauere ergebnisse haben willst,
'setze sie auf 10 und bei der if- anweisung "if Zähler = 300"
'dann könnte nur das byte nicht mehr ausreichen,
'als dass die Variable "Zähler " definiert ist.
Wend
loop
Ich habs jetzt mal für nen Mega8515 ausprobiert und port-/pinnamen eingegeben:
Code:
$regfile = "m8515.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000
Config Pina.0 = Input 'Pin y von Port x als Eingang
Porta.0 = 1 'Pullup von dem pin an
Taster Alias Pina.0 'Pin y von port x heißt jetzt "Taster" (kann sein, dass es "Taster Alias PORTx.y" heißen muss)
Config Porta.1 = Output 'Pin q von Port p ist dein output, wird nach 3 sec taster=0 getoggelt
Ausgang Alias Porta.1 'jetzt Heißt Der Pin Q Von Port P "Ausgang"
Dim Zaehler As Byte 'Variable "Zähler deklariert"
'Hauptschleife kommt jetzt:
Do
Zaehler = 0
While Taster = 0 'der Taster an Pin y von Port x muss nach GND gehen,
' darum ist logisch 1 hier low, also 0. wenn Taster = 1,
' dann hört die while-schleife auf
Zaehler = Zaehler + 1 'die Variable "Zähler wird um 1 erhöht"
If Zaehler = 30 Then 'wenn Zähler 30 mal um eins erhöht wurde,
'was aufgrund der waitms-funktion nur 10mal pro sec passiert, dann
Toggle Ausgang 'wird der ausgang getoggelt
Zaehler = 0 'der zähler wieder rückgesetzt
End If 'und neu angefangen
Waitms 100 'das ist die waitms- funktion. wenn du genauere ergebnisse haben willst,
'setze sie auf 10 und bei der if- anweisung "if Zähler = 300"
'dann könnte nur das byte nicht mehr ausreichen,
'als welches die Variable "Zähler " definiert ist.
Wend
Loop
EDIT: fehler behoben, funktioniert!
Lesezeichen