PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : toggle wenn länger wie



voll-milch
17.01.2010, 16:26
hallo, ich würde gerne folgenden code so abändern das der ausgang nur schaltet wenn der eingang länger wie 50ms getastet wird.
Ich als anfänger hab keine idee das problem zu lösen.


If Pina.0 = 0 Then 'wenn an pinb.0 eine 0 (GND) anliegt dann
Waitms 200 'warte kurz
Toggle Portb.0

danke im vorraus!

KingTobi
17.01.2010, 16:30
Nach dem drücken des Tasters in eine Schleife gehen mit 1ms Pause und dann ne Variable hochzählen.
Danach die Variable auswerten und je nach Wert schalten oder eben nicht.

Und es heisst länger ALS!

voll-milch
17.01.2010, 16:38
länger als!

hört sich ja noch komplizierter an wie ich gedacht hab, hast du zufällig n beispielcode zur hand?*g

KingTobi
17.01.2010, 16:42
Komplizierter ALS ich gedacht hab!

Hab hier mal ein Beispiel gefunden http://www.mikrocontroller.net/attachment/4633/Timer-msec.bas

voll-milch
17.01.2010, 17:46
ich glaub es wird noch komplizierter als du denkst, den daraus kann ich nichts einziffern was soll man damit anfangen da is keine zeile code drin*g

hunni
17.01.2010, 19:35
mhhh nimm einfach ein timer, der im 50 ms sek takt zählt und darin eine if anweisung, das wenn der port auf high is, soll er in eine variable +1 speichern. naja und das solange, bis er 50 erreicht hat.
Wenn allerdings nicht, dann soll er die variable auf 0 setzen.
Alles kla, also das wäre mein vorschlag

Che Guevara
17.01.2010, 19:43
Hallo voll-milch,

probier mal das:


while pina.0 = 0
waitms 1
incr wait_taster
wend
if wait_taster >= 50 then 'länger als 50ms gedrückt
'tue irgendwas
else 'kürzer als 50ms gedrückt
'tue was anderes
endif
wait_taster = 0


Dabei musst du allerdings aufpassen, dass dir die Variable wait_taster nicht überläuft.

Gruß
Chris

voll-milch
17.01.2010, 20:39
Vielen Dank Che Guevara funktioniert perfekt und hat mein problem gelöst:)