Forum: Mikrocontroller und Digitale Elektronik Entprellen von Taste die Interrupt auslöst.


von matt (Gast)


Lesenswert?

Hi an alle,

ich muss für ein labor; 7-Segment anzeigen zum Darstellen von "muster" 
benutzen. 7-Segment Anzeige
(http://www.gymnasium-sulingen.de/faecher/informatik/salcd.gif)

Also das "a" (horizontale oberste) Segment der 1 Anzeige, muss nach 
einem Tastendruck in das "a" Segment der nebenliegenden 7-Segmentanzeige 
laufen.
Nach erreichen der 4ten 7-Segment Anzeige wird das muster geändert.

Das ganze wird über eine Taste gesteuert die an dem Port0.0 (Interrupt 
0) anliegt. Was ich habe ist Ein Board an dem Tasten, LED's u.s.w. und 
der Micocontroller C8051F340 (von silicon labs.) sitzt.

Mit der eigentlichen Programierung des weiterlaufen des "strichchens" 
funktioniert soweit alles. Mein problem natürlich ist das das Strichchen 
von der 1ten z.b direkt in die 4,5 oder6 Anzeige spring, wegen der 
Tasteprellung.

Ich hab gelesen das Ich durch einen vergleich vom jetzigen wert am Port 
mit dem anfangs wert am Port das problem lösen kann wie genau aber weis 
ich nicht, hab schon vieles versucht aber immer fehler.

Ich hab mein programm ausschnitt beigefügt. Was ich lediglich brauche 
ist eine möglichkeit das nach tastendruck (interrupt 0) nur einmal die 
anweisung im interrupt durchgeführt wird.


Mein Code:
http://codepaste.net/5fuz2x

mfg, Matt.

von BOOOL (Gast)


Lesenswert?

Hallo,

wäre vllt. eine Entprellung in HW möglich ?

Gruß
BOOOL

von Hannes L. (hannes)


Lesenswert?

Tastendrücke liest man nicht mit ext.-Interrupts ein.
Siehe Entprellung...

...

von Peter D. (peda)


Lesenswert?

matt schrieb:
> Das ganze wird über eine Taste gesteuert die an dem Port0.0 (Interrupt
> 0) anliegt.

Und täglich grüßt das Murmeltier.

Oooch Nööö.


Peter

von Michael D. (etzen_michi)


Lesenswert?

Timer und Pollen .. geht super und kannste mit einem Timer nahezu 
beliebig Taster auslesen.

Lesen, speichern
Lesen, wenn vorher bereits gedrückt betätigen
Lesen, wenn öfter als 2mal bereits gedrückt nichts machen
Lesen, wenn nichtmehr gedrückt merken
Lesen, wenn wieder nciht gedrückt wieder zum drücken freigeben.

So mach ichs und funktioniert super!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.