Hallo, ich habe eine Frage zur Tasterbeschaltung an einem mc. Ich habe einen Eingang (gpio) ueber einen Widerstand (33k) auf Vcc gelegt. Mit einem Taster ziehe ich den Eingang dann auf low. Jetzt habe ich den Eingang als Interruptquelle bei fallender Flanke eingestellt. Wenn ich die Taste drücke wird die ISR aber öfter als einmal aufgerufen. Muss ich da noch eine Kapazitaet einbringen? danke Florian
www.mikrocontroller.net/articles/AVR-GCC-Tutorial#.28Tasten-.29Entprellu ng
Naja du hast 2 möglichkeiten! Entweder du baust dir eine Schaltung die zum entprellen der taste oder du schaltest sobald du in der interrupt-routine drinnen bist die interrupts aus. dann arbeitest du deinen programmtext ab und dann schaltest du die interupts wieder ein. falls das immer noch nicht reicht musst du noch eine zeitschleife in die interruptroutine mit einpacken! mfg
Interrupts sind allgemein in einer ISR ausgeschaltet. Wenn man in C nicht grad eine ISR mit INTERRUPT deklariert, ist sie da auch aus. Jedoch werden die IRQs nach der ISR abgearbeitet, aber immer max. einer, denn da zählen nur die Flags... dave
@Ferrice "dann arbeitest du deinen programmtext ab und dann schaltest du die interupts wieder ein. falls das immer noch nicht reicht musst du noch eine zeitschleife in die interruptroutine mit einpacken!" Solche Hackermethode nennt man "trial and error", hat absolut nichts mit zuverlässiger Programmierung zu tun und sollte man schleunigst vergessen. Ehe man sich völlig blindlings darauf verläßt, daß ein Programmteil rein zufällig die richtige Ausführungszeit hat, nimmt man einfach einen Timerinterrupt und weiß dann definitiv, daß das Abtastinterval immer die richtige Entprellzeit hat ! Und das dann auch völlig unabhängig davon, ob man am Programm später was entfernt oder noch hinzufügt. Es ist immer besser, etwas wissentlich zu machen als nur rumzuprobieren und dann zu hoffen, daß es klappt. Der Link von Hubert.G ist daher schon goldrichtig. Peter
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.