Gnaaah, ich bin doof!
hinter While und die Bedingung gehört natürlich KEIN "THEN"
so isses für den compiler richtig, ich probiers gleich mal aus:
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
Und es funktioniert! ich editiere noch den anderen Beitrag, damit der auch richtig ist.
Lesezeichen