www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externer Interrupt entprellen?!


Autor: Tobias Vaupel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hab folgendes vor. An dem externen Interrupt INT0 von meinem 8051 
ist ein Taster dran. Jedesmal wenn ich diesen betätige, soll eine 
Variable hochzählen.
Soweit kein Problem...
Interruptroutine geschrieben und getestet.
Dabei ist mir aber aufgefallen dass der Taster prellt...und daher zählt 
das Programm manchmal auch die Variable um 2 oder 3 hoch.
Aber die Variable soll wirklich nur EINMAL hochzählen, wenn ich den 
Taster betätige.

Allerdings weis ich nicht wie ich den externen Interrupt entprellen soll 
per software. ODer muss ich denn per hardware(RS FF oder so) entprellen?


Danke, Tobias

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
du kannst es software mäßig machen wenn mann denn Taster nicht so oft 
hintereinander betätigt. Dann kannst du's so machen das max einaml pro 
Sekunde um eins hoch gezählt wird.
oder nur jede 0,5s da musst halt schauen
Verstanden was gemeint ist

Autor: Stifflers Mom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Du schaltest deinen Interrupt aus lässt einen Timer anlaufen und wenn 
der einen Overflow auslöst schaltest du den externen Interrupt wieder 
ein. Evtl musst du noch eine Variable mitlaufen lassen, wenn dir die 
Zeit bis zum Overflow zu kurz ist.
Das ist glaub ich das Einfachste, verbraucht allerdings einen Timer.
Eine Erweiterung währe, da man ja meistens so und so einen Timer mit 
fester Overflow-Zeit braucht (z.B. 1ms) das man die Entprellung da 
einbaut.
Noch was anderes: Ich hab z.B. einen Taster mit Schließer und Öffner, 
die beide einen Interrupt auslösen. Die Interrupts schalten sich dann 
selbst aus und den anderen ein. So funktioniert das Sehr gut, wenn man 
die Interrupts frei hat und die entsprechenden Taster.

MfG

Autor: Tobias Vaupel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Anregungen.
Aber ich hab es doch nicht mit dem Interrupt gemacht.
Gab noch ne andere Lösung :)

Trotzdem Danke!

Tobias

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sähe denn hier die Hardware-Lösung aus? Hab die Suchfunktion
benutzt, aber kein eindeutiges Ergebnis gefunden. Also, wenn ich den
internen Pull-up aktiviert hab, muss ich dann einfach nur vom portpin
aus einen 100nF-Keramik-C nach GND legen, und das wars schon??? Hab
auch irgendwo gelesen, dass man noch irgendwie einen Widerstand mit
einbauen sollte. Wo genau muss der denn dann hin, und wie groß soll der
sein?

würd mich über ne antwort freuen. mfg, anfänger.

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pull-up und R sind schon richtig.
      5V
       ^
       |
       -
      | | 4k7
      | |
       -
       |    _ 10..100 Ohm
 uP <--*---|___|---
       |           |
       |            /
      ===          /
       |           |
       |           |
       - 0V        - 0V

die 4k7 können auch der interne Pull Up sein, der Serienwiderstand
begrenzt den Kurzschlußstrom beim Tasten.

grüsse leo9

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cool, das ging schnell. vielen dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.