PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eingabe zählen und weiterverarbeiten



raptor_79
08.02.2005, 21:19
grüazi mteinander!!

bastel da grad an einem proggi, daß soll einen wert über einen taster aufnehmen können (zählen). und zwar will ich an einem taster x-mal drücken, und nach 5sec wenn nix passiert, soll er die x-mal-drücken weiterverarbeiten.

wie geht das?!? hab mich schon tot gespielt! gut, hab jetzt auch nicht diese ahnung, aber wäre nett, wenn mir jemand helfen könnte.

generell, wie zähle ich eine eingabe, die über einen taster kommt an??
kann man das irgendwie mit bits machen??
oder wie geht sowas??


dank euch schon mal!!!!

harryup
09.02.2005, 21:24
hi,
nur mal so als ansatz, ist sicher verbesserungswürdig.
wichtig: vom taster auf input pin einen widerstand (z.b 750ohm) und vom input pin auf gnd einen kondensator von 100nF legen, zwecks der entprellung, sonst zählt jeder tastendruck evtl. mehrmals obwohl nur 1x gedrückt.

dim ZAEHLER as byte (o. word o. long, soviel eben gezählt werden soll)
ZAEHLER = 0 ' erstmal leeren, nix dem zufall überlassen

do
if pina.0 = 1 then ' spannung liegt an, taster gedrückt
incr ZAEHLER
bitwait porta.0, reset ' warten solange taste gedrückt
end if
lcd "Zaehlerstand: " ; ZAEHLER ' auf display ausgeben
loop

feddich, schon zählts, das is jetzt die super-simpel-variante für z.b. taste-abfragen-demo, eleganter wird's über interrupt, bei steigender flanke ausgelöst, im int: incr ZAEHLER - return, dann läuft dein restlicher prog weiter, auch wenn die papp- und teignasen stundenlang auf der taste stehenbleiben.

für die 5 sekunden kannste ja noch 'ne zählschleife oder 'nen timer einbauen, der mit jedem tastendruck 'genullt' wird ODER, wenn mehr als 5 sekunden vergangen sind -> weiterverarbeitung

grüssens & immer fröhliches probieren, harry

raptor_79
09.02.2005, 21:55
ahhhh!!!! das ist schon mal gut.... bin nähmlich auch grad dabei, mich mit dem interrupt zu spielen.
aber des mit dem timer, der "genullt" wird, ist super.
ich hab das entprellen mit waitms 200 gelöst. da kann man drücken, so schnell man will, und der zählt dann immer brav +1 dazu.

aber gut, damit kann ich jedenfalls was anfangen. vor allem "incr" ist mir neu..... dank dir!!

CR-Racing
10.02.2005, 16:12
Schau dir doch mal in der Hilfe den DEBOUNCE befehl an
der entprellt automatisch.

Gruß CR