-
Thread
Tasterabfrage
Sofern der Taster nicht prellt, und er einen Pull-Down hat und du ihn auf VCC ziehst möglicher weise. Vorrausgesetzt die Abfrage findet kontinuierlich statt (z.b. in einer while-Schleife)
Wir haben solche Abfragen immer in in ein Interrupt mit ca. 20-50ms (abhängig vom Taster) gepackt. Im Interrupt lauft dann die Routine von Karl Heinz Buchegger. Ein wenig experimentieren mit der Interrupt Zeit und dein Code sollte laufen.
-
Thread
SREG – Status Register beim Attiny 841
// Freigabe Pin Change Interrupt 0 PCMSK0|=(1<<PCINT7); // Abfrage Taster PA7 --> PCINT7 (Taster rechts) } int main() { external(); // Aufruf external_interrupt pin_change(); // Aufruf pin_change_interrupt
der Hauptschleife. Das wird schon nur Mut. Zum lernen kannste natürlich gern Interrupts verwenden. Nur würde ich da Zähler einbauen, dann siehste wie oft der Taster prellt.
-
Thread
Probleme beim Entprellen.
Marcel S. schrieb im Beitrag #3176540: > Hat jemand Tipps wie ich SW-Entprellung mit Interrupts kombinieren kann. Gar nicht. Taster pollt man mit einem Timer. mfg.
die Tasten einen Interrupt zu benötigen. Wenn dem so ist, dann sitzt das Problem tiefer, weil der ganze Programmaufbau dann nicht vernünftig ist.
-
Thread
AVR Assembler Hardwareinterrupt entprellen Gesperrt
nur ausprobieren ob es so funktionieren würde. (Ich habe ungefähr 10mal so lange gewartet, wie der Taster Prellt.) Zur Idee mit einer Hardwareentprellung und Zähler... <- Es geht ja um Interrupts und das Entprellen! Ich muss programmieren lernen, Hardware war leztes Jahr dran. Die Idee mit dem Timerinterrupt
ausprobieren ob es so funktionieren würde. (Ich habe ungefähr > 10mal so lange gewartet, wie der Taster Prellt.) In einem Interrupt warten macht man nicht. Du könntest in der ISR checken, wie lange der letzte Interrupt vergangen ist und dann den aktuellen Interrupt einfach ignorieren, wenn er innerhalb
-
Thread
Hardware Entprellung - Welche Werte?
kann in 5 Jahren alles ganz anders aussehen. Nur weil dein Taster HEUTE nicht prellt, bedeutet das nicht, dass er es in 5 Jahren nicht tut. Sie können in 5 Jahren immer noch gut funktionieren, so ist das ja wiederrum nicht. Können - müssen aber nicht. Die PeDa
schrieb im Beitrag #3206631: > Warum? Ganz einfach: Jeder (wirklich absolut jeder) mechanische Taster > aus festem Material prellt. Dafür sorgt die böse Physik. Nanana.. Also wenn man nur einen hinreichend großen Kondensator parallel zum Taster schaltet, kommt es beim Schließen zu ner Mikro-Verschweißung
-
Thread
Was läuft denn hier eigentlich mit meinen Interrupts!?
bin der Verzweiflung nahe: Ich habe eine Schaltung mit 90s8515, die einen Geber (Reed, momentan Taster) am INT Eingang hat. Wenn jetzt der Interrupt ausgelöst wird, wird ein Zähler erhöht (immer um eins). Zum Problem: Manchmal zählt er aber gleich zwei Schritte hoch, woran kann das liegen? Prellen
jeder taster prellt, der eine mehr, der andere weniger.
-
Thread
Problem mit externem Inerrupt
wt schrieb: > wie lange prellt denn der Schalter? gar nicht, da ja der Taster im moment des drückens den Kondensator schlagartig gegen Masse entlädt und somit auch dieses Potential an dem Interrupt eingang anliegt. Diese Schaltung
LcdUpdate(); } while (!(PIND& (1<<PD3))&&(weiter<0x01)); //Abwarten bis Taster gedrückt while ( PIND & (1 << PD3)&&(weiter<0x01)); //Abwarten bis Taster wieder gelöst oder Interrupt (OK Taste betätigt) wahl++; if (wahl==3) { wahl=0; }
-
Thread
Drehregler Peter D Code
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; }[/c] Jetzt habe ich in der Interrupt Service Routines folgendes einen Interrupt und ein Timer. Ich müsste dann jetzt seine "void t0_interrupt" Funktion in EXTI1 und "gray_width get_gray_delta" Funktion in TIM1 schreiben richtig?
Nun kannst du dir überlegen, ob du den ganzen Mist pollen willst, oder ob du das durch einen Interrupt auf beide Flanken von k2 erfassen willst. Der Interrupt ist die weitaus elegantere Variante, setzt aber voraus, daß du das Signal zuvor analog entprellst. Dafür braucht's nen 22nF Kondensator
-
Thread
Externer Interrupts löst manchmal ungewollt Reset aus
Ich vermute mal der Fehler liegt in deiner Entprellroutine und etvl. Nichtberücksichtigung der Interrupt-Flags. Da jeder Taster ja prellt muss dieses natürlich in der Interrupt-Routine nochmal zurückgesetzt werden.
Interrupt ****** Ich verwende den Taster mit Pullup. Ich kann soweit keinen Fehler erkennen. Danke und ade, Thomas H.
-
Thread
Probleme mit externen Interrupts am ATmega328P
> allerdings mit dem selben Effekt, dass ich die ISR für INT1 zweimal > ausführe. Klar, der Taster prellt. Die erste negative Flanke löst den Interrupt aus. Während der µC den Interrupt abarbeitet (delay), setzen weitere negative Flanken das Interruptflag wieder. Taster abfragen macht man besser
man Tasten normalerweise auch nicht mit einem Interrupt-Pin ab. Besser: Timer/Task in der main-loop, das ganze in die PeDa-Entprellung füttern. Interrupt für Tasten hab ich normalerweise nur zum Wake-Up aus
-
Thread
Power Switch
Tiny15V so hinbekomme. Was das Programm tut: Der Tiny schläft die meisste Zeit. Sobald der Taster >0.7s gedrückt ist wird der Ausgang aktiviert. Falls der Taster dann nicht innerhalb 2s losgelassen wird wird der Ausgang wieder deaktiviert. Falls der Ausgang aktiv ist muß man den Taster 0.7s
dann nicht weiter prellt, dann würde die CPU doch schlafen bis ich den Taster loslasse, oder werden durch GIMSK = 1<<PCIE vorher aufgelaufene Interrupts abgearbeitet? Udo
-
Thread
Taster abfragen - Interrupt vs. Polling - Stromverbrauch
vs. Power Down + WD 5µA) und ist unnötig. Habs bei nem Küchentimer Projekt über die Pin-Change-Interrupt Variante gemacht. Ob der Taster prellt kann dir im Interrupt eigentlich egal sein ob der da ein oder fünfmal rein rennt ist egal der Interrupt ist nur da um den Controller zu wecken, das Debouncen
Ich würd den µC so tief wie möglich schlafen legen, den Taster auf einen Interrupt. Innerhalb der Interrupt Routine wird der Interrupt deaktiviert, und falls danach noch Tasten abgefragt werden sollen, wird das über den debounce gemacht. kurz vor dem Schlafengehen
-
Thread
Problem sleep Mode - Attiny25/45/85
Peter Dannegger schrieb im Beitrag #2233613: > - Interrupt Handler fehlt ist sicherlich nicht optimal geschrieben :) [c]/***********Interrupt Taster******************/ ISR(INT0_vect) // Interrupt Vector { long_delay(50);
if(sw==0){ }else{ } }else if(counter>10){choose++;if(choose>7){choose=1;}else{}}else{}// Taster ca. 0.5 sek gedrückt für Moduswechsel ? counter=0; // zähler zurücksetzten long_delay(10); // }//end ISR /***********Interrupt Taster End******************/ /***********Interrupt
-
Thread
STM32 EXTI-Entprellung mit HAL
bei 2 Interrupts für 8 Tasten (AVR) bzw. 32 Tasten (ARM).
Ereignis asynchron zum Timer läuft und das Ereignis immer kurz vor dem Timer-Interrupt passieren kann, so daß die Taste dann immer noch prellt.
-
Thread
Encoder/Drehgeber zu langsam
Interrupt auf die Flanken des Encoders macht nur Sinn wenn dieser nicht prellt...sonst haste einen Haufen unnützer Interrupts. Die Polling-Methode von Peda ist schon echt gut, und mit 1kHz Interrupt-Frequenz
Entprellerei? Schau dir doch mal die ganzen 'Entprell-Lösungen' an. Meistens bedeutet das: Im Interrupt ist ein delay, der das System ein paar Millisekunden blockiert, dann werden die Interrupt-Flags zurückgesetzt, der Puls gezählt und die ISR ist beendet. Dreht dein Benutzer heftig am Rad und prellt
-
Thread
Entprellen gleich aller Tasten mit nur 7 Zeilen
Werte bekommen etc., und nun kommst du daher und meinst: "Hey, Timer0! Sag mir mal Bescheid, wenn die Taste nicht mehr prellt!" Natürlich ist auch diese Nuß zu knacken (bei jeder TCNT-Zuweisung erst nachschauen, ob da irgendwo noch eine Taste am Drücken ist, falls ja - alten Zählerstand speichern, neuen
1ms pro Periode und maximal 10 mal nacheinander. Nun vergleiche dies mit einem Extremfall wo der taster mit 1 MHz prellt und das 1000'ende male hintereinaner. Oder bei einem Fall wo der Taster nicht mehr genügend mechanischer Gegenspannung besitzt und die Kontakte lose aufeinander liegen, sprich ein
-
Thread
Mit Hardware entprellen
18b-tastend-1-st-701865.html ist kein prellfreier Taster. Der heißt nur so, prellt aber trotzdem.
schrieb im Beitrag #5322133: > Pi mal Daumen ist die Zeit Pull-Up * C. Ich würde meinen, ein Taster prellt (hautpsächlich?/nur?/auch? egal....) beim Einschalten. Das heißt, die Zeitkonstante aus Rbegrenz und C wäre die relevante, nicht die mit dem Pullup.
-
Thread
Allgemeine Frage EXTI IRQ -> LED ändert sich willkürlich
Ist der Interrupt flankengesteuert oder statisch? Im 2. Fall würde der Interrupt solange andauern/wiederholt werden, wie die Taste gedrückt ist. Gruß Dietrich
einfach mal nach Interrupt Taster und Prellt hier im Forum: http://www.mikrocontroller.net/search?query=interrupt+taster+prellt
-
Thread
Entprellen nach Dannegger: Debounce Time
Nachdem eine Taste gedrückt wurde darfst Du halt eine gewisse Zeit lang alle weiteren Pin-Wackler nicht berücksichtigen. Sagen wir mal, Du hast einen Timer-Interrupt, der jede Millisekunde kommt. Dann könnte es in
>wenn ich die Zeit allerdings zu kruz wähle z.B. 5ms, dann könnte >es passieren, dass der Taster noch prellt und das wieder Probleme macht. Hatte noch nie einen Taster, der länger als 8 msec prellt. Wenn Du welche hast, dann schmeiß sie weg. Mit übernommenen Entprellroutinen wirst Du immer
-
Thread
Folientastaturen prellen nicht?
Hallo Fabian, wenn ein Taster jetzt vielleicht unterhalb eines Messbereiches prellt, was ist dann in 1 oder 5 Jahren? Wie will man garantieren, dass solch ein Taster immer diesen Zustand behält? Er altert auch.
Hallo Fabian, wird das Interrupt-flag INTn nicht erst nach verlassen des ISR gelöscht und ist für PowerDown Mode den etwas anderes als Level Interrupt möglich ? Somit muss man in der ISR dem INTn abschalten und die Taste entprellen
-
Thread
FlipFlop Ein- Ausschalter funktioniert nicht
AtXmega64. Dann brauchst Du nur einen einzigen, interruptfähigen Eingang, an den Du den EIN-AUS-Taster anschließt. Im ausgeschalteten Zustand schläft der µC und wird per Interrupt aufgeweckt. Falls Du nach andere Bauteile einschalten mußt, kann das der µC erledigen. Der Vorteil: er kann sie auch wieder
www.mikrocontroller.net/topic/290561#new Hmm. Wozu das ganze Foo mit 2 Widerständen und 100nF rund um den Taster? Wenn da ein µC sitzt, kann der das doch ganz trivial in Software entprellen? Natürlich schickt man den µC in den deep sleep und weckt ihn per pin change interrupt auf. Und ebenso natürlich ist das
-
Thread
Tastenanschläge zählen in c (ATMEGA32)
deklarieren. Dann fiel mir auf, das du im Code überhaupt keine Entprellung hast! Ein real existierender Taster prellt aber immer! Ein Tastendruck prellt etliche male nach, so das du diesen einen Tastendruck 10, 20mal zählst. Ist ist deshalb nicht besonders klug den Taster direkt einen Interrupt auslösen
, - LED blinken mit Timer, - LED blinken mit Timerinterrupt, - LED mit Taste an/aus, - LED mit Taste toggle - 2 LEDs mit 2 Tasten toggle Dann bist Du bereit. Peter
-
Thread
Taster Entprellen [Interrupt]
Mit dem flankengesteuertem Interrupt kann man den Taster nicht gut entprellen, da jede Prell-Flanke ein Interrupt auslöst. Für gewöhnlich nimmt man ein Timer Interrupt und fragt den Zustand in der ISR ab. Siehe --> [[Entprellung]]
Ich habe das grade mal probiert und kann bestätigen - per Interrupt Taster entprellen ist eine schlechte Idee. Habe das jetzt so weit getrieben: - Interrupt auf steigende Flanke an PinB3 (Taster zieht mit 150Ohm auf Vcc; Pin hat 10k Pulldown auf GND). - Erste
-
Thread
kein definiertes Verhalten in der ISR
ISR aufzurufen, gehört verboten! ISR sollen so kurz wie möglich und so lang wie nötig sein. Ein Taster prellt im Millsekunden-Bereich. Das kann man hin und wieder mal abfragen, muss aber nicht mit einem Interrupt darauf reagieren.
aufzurufen, gehört verboten! > ISR sollen so kurz wie möglich und so lang wie nötig sein. > Ein Taster prellt im Millsekunden-Bereich. Das kann man hin und wieder > mal abfragen, muss aber nicht mit einem Interrupt darauf reagieren. PittyJ schrieb im Beitrag #6217114: > Hab ich auch gleich gedacht
-
Thread
Taster entprellen
"Kann man die Entprellung auch ohne Interrupt bewältigen?" Im Prinzip ja, ist aber lange nicht so eine schön kleine, schnelle, zuverlässige und universelle Lösung. In der Regel machen diese auch nur eine Taste, d.h. für 8 Tasten braucht
, dass die Taste nicht mehr prellt. Unter C würde ich das Timing mit Interrupt lösen (bleibt Zeit um noch etwas Sinnvolles zu tun). Ansonsten einfach verschachtelte Zählschleifen, bis die Zeit abgelaufen ist. Taste
-
Thread
externer Interrupt
Und wenn, wie es bei Tastern nun mal passiert, das Signal am Eingang prellt, springt der Controller diverse Male aus der Main heraus. Tasten wertet man aus, indem man sie per Timer in regelmässigen Abständen (zig Millisekunden
externen Interrupt in Zusammenhang mit einem Taster gibt, und das ist eben der, wenn man den µC per Tastendruck aus dem Schlaf holen will!
-
Thread
Arduino pulseIn / pulseInlong - Taste entprellen
Tom schrieb im Beitrag #6021125: > ab einem genügend großen Rückgabewert wurde die Taste gedrückt. Und wenn der Taster mal weniger prellt?
Zeno schrieb im Beitrag #6022533: > Und wenn der Taster mal weniger prellt? Dann ist er es nicht wert ausgewertet zu werden ;) Ich persönlich bin ja immernoch ein Freund von entprellen in Hardware. RC und Schmitt Trigger Eingang mit Interrupt.
-
Thread
Interrupt nachbasteln
Danke. Leider keine Antwort auf meine Frage :) Atmega 8, ein Interrupt für 4 Taster, keine Parallelbetatigung.
knilch schrieb im Beitrag #4857380: > ein Interrupt für 4 Taster Willst Du etwa mit den Tastern Interrupts auslösen? Das wäre in den meisten Fällen eine ganz, ganz schlechte Lösung... Richtig ist es jedoch, die Taster in einem Timer-Interrupt
-
Thread
Probleme mit Taster
Hi, ich habe an den µC einen Taster mit 10k Pullup angeschlossen. In der main aktiviere ich den Interrupt outp((1<<INT0), GIMSK); //int0 einschalten outp((1<<ISC01), MCUCR); //falling edges sei(); Wenn der Interrupt
Hallo M, der Taster prellt, d.h. er schliesst und öffnet ganz kurz hintereinander ein paar mal. Je nachdem wie schnell Deine Erkennungsroutine ist, bekommst Du 2 oder mehr "Erkennungen". Lösung ist möglich, indem eine
-
Thread
ATtiny2313 ext. Interrupt wird doppelt ausgelöst
Hallo, ich möchte per INT0 eine Tasterentprellung machen. Beim Testen (Taster wird ganz schnell mehrfach betätigt) wird meine ISR 2 mal ausgeführt! Warum? Mit cli(); sperre ich doch weitere Interrupts und auch wenn ich das Flag im EIFR lösche passiert das- [c] ISR
gelöscht. Damit bleibt das von deiner ISR übrig: ISR (INT0_vect) // ISR ext. Interrupt Request 0 { asm("NOP"); } Tasten werden mit einem Timer entprellt: http://www.mikrocontroller.net/articles/Entprellung Lies dir das durch. Was du jetzt machst, ist Stochern im Nebel
-
Thread
Effezenter Drehgeber decoder in c
Pull-Up an der richtigen Stelle. https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster Aber auch damit ist die Flankenauswertung per Interrupt NICHT solide! Aber das haben wir schon mehrfach bis zum Erbrechen diskutiert. Klar, einige WOLLEN es nicht verstehen, das Dogma läßt grüßen
. schrieb im Beitrag #5918506: > https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster > > Aber auch damit ist die Flankenauswertung per Interrupt NICHT solide! Man kann das schon solide hinbekommen, wenn man einen Schmitt-Trigger mit ausreichend großer Hysterese¹ verwendet und
-
Thread
Interrupt ATtiny85 - Hilfe
Wenn das Programm sonst nichts zu tun hat, dann brauchts auch keinen Interrupt für einen Taster. Polling wäre dann voll ausreichend.
Beitrag #7552637: >> Wenn das Programm sonst nichts zu tun hat, dann brauchts auch keinen >> Interrupt für einen Taster. > Doch, wenn man Strom sparen will und keinen extra Hauptschalter einbauen > will. Dann würde ich in diesem Fall zwar einen Interrupt auf den Taster setzen, aber die Interrupt-Routine
-
Thread
Motoren lösen immer einen Interrupt über einen silberlegierten Taster aus
Störung induziert durch die Ströme die bei deinem Motor fließen (vermutlich anlaufstrom). Ein Taster direkt an einen Interrupt ist sowieso nicht zu empfehlen, da wenn der Taster prellt der Interrupt gleich mehrfach aufgerufen werden kann.
Spannungsabfall auf der Masse Leitung (Strom des Motors) ein Schalten unmöglich wird. > Ein Taster direkt an einen Interrupt ist sowieso nicht zu empfehlen, da > wenn der Taster prellt der Interrupt gleich mehrfach aufgerufen werden > kann. Taster am Interrupt geht schon. Wenn der Int auslöst
-
Thread
attiny13 aufwecken aus power down modus
und die LEDs verstellt. deaktiviere ich die Interrupts, dann sehe ich das Blinken aber er läuft direkt weiter aus dem PowerDwon raus, obwohl der Taster schon seit ner sekunde nicht mehr gedrückt wird. folgendes kommt dem orignal näher: [c] int
dieses Beispiel hier ausgegraben weil es ganu das machen soll was ich benötigen würde. Mit einer Taste den Sleep-Modus EIN/AUS zu schalten. Was mir jedoch hier fehlt ist, wo wird denn der Interrupt-PIN zum aufwecken definiert? Also der PCMSK0?
-
Thread
Reaktion auf Tasterereignis in zeitlich unkritischem Programm
Da ich jetzt nicht vorraussagen kann, wann T1 betätigt wird, habe ich überlegt das ganze über Interrupts zu steuern. Sprich es soll auf eine steigende Flanke an T1 gewartet werden. Nun habe ich aber gelesen, dass ein Interrupt nicht über einen Taster ausgelöst werden soll, da durch das prellen der Interrupt ja öfter ausgeführt werden würde. Gleiche Frage wie oben: Wenn F1 länger dauert, wie T1 prellt und während F1 keine Interrupts zulässig sind, ist es doch unkritisch, den Interrupt auf T1 zu legen
-
Thread
Bascom Menüsteuerung mit Drehimpulsgeber
Zeile 42 ist im Programm "Enable Interrupts" was soll daran falsch sein?
Kondensatoren sehe ich da nichts aber es werden erfreulicherweise verschiedene Methoden (Encoder-Befehl, 1 Interrupt, 2 Interrupts, Timer') vorgestellt. Kurz und knackig - so wie man es braucht. Super-Anregungen.
-
Thread
Problem mit ext. Interrupt
Hallo, ich bin blutiger Anfänger und möchte mittels eines Taster (Schließer) einen Ext. Interrupt auslösen. Folgender COde dazu [c] void main() { //PB2 Putput + Pullup DDRB &= ~(_BV(PB2)); PORTB |= _BV(PB2); //PortA output + LEDs off DDRA
Interner Pullup reicht. Dein Taster prellt, das weißt du hoffentlich. Taster an Interrupt ist deshalb immer schlecht. Aber irgendwas müsste sich trotzdem am Port tun, nur vielleicht siehst du es nicht. Ansonsten schreibst du nichtmal
-
Thread
Taster an Int0
dann den Taster noch entprellen? Meiner (noch formbaren) Meinung nach müsste doch der Interrupt bei der ersten steigenden Flanke ausgelöst werden, egal ob danach der Taster noch prellt, oder? Ich lasse mich
ich nehme für Tasten überhaupt keinen Interrupt. Alle 10ms mal vorbeischaun, ein Timer läuft doch sowieso in fast Programm.
-
Thread
Arduino sketch
Ich sehe in der Anwendung keinen Bedarf für eine Entprellung. Kein Taster prellt 10 Sekunden lang.
max123 schrieb im Beitrag #6512089: > Die Eingabe soll über den Seriellen Interrupt > Erfolgen. watt? wo kommt denn das jetzt her? oben steht doch "taster"... zudem verstehe ich die ganze antwort nicht so ganz. hat das noch was mit der frage an sich zu tun?
-
Thread
Taster - externen Interrupt Problem
er auch da reinspringt. Nur leider tut das Programm mir nicht den gefallen. Ich weiß das der Taster prellt, und habe deswegen in der ISR die ext. Interrupts abgeschaltet, die externen INTpins als Ausgang geschaltet und zusätzlich die entsprechenden Flags gelöscht, da sonst ja wieder ein neuer ISR
ALso Taster geht, die 2.Anzeige die an PD5 hängt geht aus. Ich vermute dadruch das mein Taster nicht so dolle prellt das ganze von Dannegger nicht funktioniert. ..Vermutung
-
Thread
Interrupt durch Elektrogerät ausgelöst
Hi >Was kann das sein? Üblicher Fehler: Taster mit Interrupt. Und wahrscheinlich auch noch mit internem Pull-Up-Widerstand. MfG Spess
doch auch? Warum zusätzliche(!) Hardware wenn es auch in Software geht? Ohne zusätzliche Hardware prellt der Taster am Interrupteingang und löst so gleich mehrere Interrupts aus. > wie löst man denn sowas normalerweise? Taster an normalen Pin, interner Pullup, Abfrage und Entprellung im Timer-Interrupt
-
Thread
Tasterentprellen - nur für Nerds? Gesperrt
. Das kann dazu führen, daß die Taste hinten am Gerät wieder herauskommt, je nach Wutpegel des Benutzers. Viele CPUs haben deshalb extra einen SysTick-Interrupt, worin man bequem alle Tastenereignisse entprellen und speichern kann. Die
Rainer W. schrieb im Beitrag #7472318: > Ein Taster prellt nur, wenn er betätigt wird, d.h. der erste Wechsel > soll bereits als solcher erkannt und nicht tot gefiltert werden Der erste Impuls kann auch von einer elektromagnetischen Welle kommen
-
Thread
ATmega32 - start/stop button
mal ganz genau zu sagen, wenn dein Programm nicht läuft, kannst du auch nicht feststellen, ob eine Taste gedrückt ist. Das ist ja bereits Teil von deinem Programm. Selbst wenn man das über Pinchange-Interrupt macht, muß zuerstmal das Programm loslaufen und die Interrupts konfigurieren. Erst dann kann ein Interrupt auftreten, wenn sich ein Pin am Port ändert. Du willst aber sicher eine bestimmte Funktion ausführen, wenn eine Taste gedrückt wurde. Dazu gibt es beispielsweise hier einen Artikel: http://www.mikrocontroller.net
-
Thread
Externe Interrupts am mega32
Hallo, ich habe ein Problem bei den externen Interrupts (INT0 und INT1) am mega32. Ich habe sie auf steigende Flanke gestellt und will damit ein Druck von einem Taster erfassen. In dem Programm heissen die Taster "Stopptaster" und "Modustaster". Mit
Hallo Danke erstmal für die ganzen Antworten. Das der Interrupt nicht funktioniert liegt nicht an prellenden Tastern, sondern dass die Versorgungsspannung beim Drücken der Taster einbricht. Das liegt daran, dass die Kondensatoren zum entprellen einen Kurzschluss
-
Thread
Auswertung Drehencoder?
Grundsätzliches grundsätzlich nicht verstanden. Und wenn ein Kontakt, nicht nur beim Umschalten prellt, sondern beim Schleifen kratzt... Während der Andere Prellt?
W.S. schrieb: >Ich gehöre zur Interrupt-Fraktion Es gibt ja mehrere Interrupt-Varianten. Low-Pegel am INT-Pin löst Interrupt aus Jeder logische Wechsel am INT1-Pin löst Interrupt aus Eine fallende Flanke am INT-Pin löst Interrupt
-
Thread
Problem Zufallsgenerator
Ein Schalter prellt auch noch.
schnell genug. Ein Würfel ist doch perfekt um sich mal mit Timer und Interrupt zu beschäftigen: - Ein 8bit Timer der immer durchläuft - Ein Taster am Interrupt Pin - Im (Tasten)Interrupt den Zählerstand auf einen Port mit LEDs ausgeben Das der Taster prellt ist hier
-
Thread
PIC Interrupt auslösen
Taster direkt als Interruptquelle zu nutzen ist nicht sinnvoll, da man sie vorher per Hardware entprellen müsste. Frage die Taster in einem Timerinterrupt oder einem schon vorhandenen, regelmäßigen Interrupt
ok, ich richte also einen Timer gesteuerten Interrupt ein, der z.B. alle 10tel Sekunde die Taster abfragt. Wenn der Taster aber gerade während der Abfrage "prellt" sodass er am Port als nicht gedrückt aufscheint, regiert die Abfrage nicht oder?
-
Thread
Interrupt in Assembler
Hi >Die Taster Abfrage soll aber unbedingt über eine Interrupt-Routine >gehen. Du weisst aber, das ein Taster prellt und mehrere Interrupts auslöst. MfG Spess
ich den Taster betätige geht die andere LED an aber die erste blinkt nicht mehr. :-) Es sieht so aus als hängt der controller im Interrupt fest. Wie geht das dass der wieder aus dem Interrupt rauskommt ? Gruss
-
Thread
[PIC] Problem mit Interrupt
Der Fehler passiert beim Loslassen vom Taster. Das erzeugt auch einen Pinchange-Interrupt. if( INTCONbits.RBIF && PORTBbits.RB5 ) ist dann einmal erfüllt und if( PORTBbits.RB4 == PORTBbits.RB3 ) ist auch erfüllt, die Frequenz wird also um
PORTBbits.RB5 ); ist schon richtig um auf das Loslassen zu warten. Der Punkt ist ein ganz anderer. Der Taster prellt. Und das eventuell so schnell, dass er einen Interrupt auslöst und in diesem dann an verschiedenen Stellen verschiedene Werte liefert. Das Konzept ist wie gesagt eh nicht gut mit dem Warten
-
Thread
Drehzahlmessung
Basic dann eine Funktion wie ASCIItoHex hat. Ich habe noch das Problem, dass er solange ich diese Taste drücke, das Zeichen raussendet. Er soll aber egal wie lange ich auf der Taste bleibe (sprich auch wenn der Reed-Kontakt mal prellt) nur einmal das Zeichen rausschicken. Habe schon mit Schleifen, If-Anweisungen
können irgendwo mitten aus einem Satz sein. > Ich habe noch das Problem, dass er solange ich diese Taste drücke, das > Zeichen raussendet. Er soll aber egal wie lange ich auf der Taste bleibe > (sprich auch wenn der Reed-Kontakt mal prellt) nur einmal das Zeichen > rausschicken. Habe schon mit Schleifen