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
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
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
Danke für eure Anregungen. Aber ich hab es doch nicht mit dem Interrupt gemacht. Gab noch ne andere Lösung :) Trotzdem Danke! Tobias
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.