Entprellen von Taste die Interrupt auslöst.

Gast #2432454
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.
#2432505
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren