-
Thread
Taster entprellen
30); } taster_value = c; digitalWrite(DP_BUTTON, HIGH); interrupts(); } void workOnKeyPress() { if ( taster_value != 0 ) { if ( taster_value < 15 ) { // short press ...
> Wieso, wenns prellt dann wirds trotzdem auf high gezogen ? Genau ein mal. Prellt dein Taster immer nur einmal? Oder prellt er eine gewisse Zeit?
-
Thread
Wie lange prellt ein Taster in der Regel?
hat... Zudem hat sie das Problem, daß die Schleifen, die die Prellzeit beheben sollen, von allen Tasten gleichzeitig verwendet werden, also nicht jede Taste einzeln entprellt wird, sonden so lange eine Taste prellt, verhindert sie daß die anderen Tasten erkannt werden. Falls du also fragst, was Maxim
, Hier gibt es keine Schleifen, die Prellzeit beheben sollen. > von allen Tasten gleichzeitig verwendet werden, also nicht jede > Taste einzeln entprellt wird, sonden so lange eine Taste prellt, > verhindert sie daß die anderen Tasten erkannt werden. Nein, die Tasten werden
-
Thread
Wie viele Quadratur Encoder hat ein Mikrocontroller ?
>Kein Problem, hänge die 4 Encoder an einen Port mit >Pin-Change-Interrupt. Stellt mich an den Pranger, aber Pin-Change-Interrupt halt ich für dieses Problemchen den ganz falschen Ansatz. Die Encoder sind nix anderes als Taster, die in Abhängigkeit voneinander schalten
) >geschickterweise die Erfassung erledigt. Daraufhin kam die Warnung, dies >bloß nicht per Interrupt zu machen, dem ich widersprochen habe. Interrupt ist schon richtig, aber bitteschön TIMER-Interrupt. >Grundschwingungen ist. Optische Geber prellen nicht, können aber sehr >hohe Frequenzen
-
Thread
Messn wieoft ein Schalter prellt
Hallo! Ich habe hier folgendes Problem, ich hab hier ein µC Board und wenn ein Taster gedrückt wird, soll die Anzahl der Prellungen gemessen werden und am LCD ausgegeben werden. Leider warf uns der Lehrer ins kalte Wasser und ich hab keine Ahnung wie ich da vorgehen muss, hab gerade mal geschafft das Board zu installiern. Nun, wie schaut der Code dazu aus, kann mir jemand helfen? Danke vielmals MFG Elias
-
Thread
ESP8266 mit PCF8574 und Taster - Interrupt vom PCF "spinnt"?
nicht alle Statusänderungen via I2C abgeholt wurden. Mein Code ist da wohl zu langsam. OG 02: Taste gedrückt und dann wieder losgelassen. Interessanterweise prellt der Interrupt beim Loslassen der Taste. Details siehe OG 03 und 04. Wie kann sowas kommen? OG 05: hier habe ich eine Taste jetzt sehr
hintereinander gedrückt. I2C wird nur einmal gelesen - man sieht allerdings kein CLK (siehe OG 06) - , die Interrupt-Leitung folgt der Taste, allerdings massiv viel prellen, bis schlussendlich ein Dauerprellen läuft. OG 07: Taste mäßig schnell hintereinander gedrückt. Interrupt-Leitung prellt zwar, aber er wird
-
Thread
Change Notification Interrupt
Im Horoskop steht dazu heute: Du könntest Pech haben, wenn die Taste prellt.
Du kannst auch ein externes Interrupt verenden, du solltest aber in der ISR so lange warten, dass der Taster nicht mehr prellt, bis du den PORT für die Flankenerkennung abfragst. Sonst kann es dir passieren, dass du den PORT in dem Moment
-
Thread
Tastenentprellung
: In die Tonne. Jepp, Und zum Pin change Interrupt. Wie oft denkt ihr denn prellt so eine taste? So eine richtig schlechte! Einmal, zweimal? Dann seid ihr Optimisten. 1. braucht man den Pin change evt. für was anderes 2. Wird das entprellen über
jedoch nicht verändert, dann kann davon ausgegangen werden dass der neue Status stabil ist und der Taster nicht mehr prellt. Hat sich der Status in den letzten 20ms jedoch noch geändert, dann schwingt da noch etwas. Die Idee mit dem Zähler, um zu sehen wie oft die Interrupt-Routine aufgerufen wird
-
Thread
Softwareentprellung funktioniert nicht
auch ein wenig > komisch finde ich. Nicht wirklich 'komisch'. Nur weil in du in der ISR bist, prellt ja der Taster deswegen nicht weniger. Und wenn er prellt, wird der nächste Interrupt registriert, der dann ausgeführt wird, wenn diese ISR abgelaufen ist. -> es ist ein Irrtum zu glauben, Taster
> Nicht wirklich 'komisch'. Nur weil in du in der ISR bist, prellt ja der > Taster deswegen nicht weniger. Und wenn er prellt, wird der nächste > Interrupt registriert, der dann ausgeführt wird, wenn diese ISR > abgelaufen ist. Dafür war der delay() gedacht
-
Thread
Tiny45 stürzt ab trotz Minimalprogramm
Interrupts ausschalten ist Gefummel? Der Taster prellt, deswegen würde der Interrupt sofort wieder ausgelöst. So wird er erst beim nächsten Timerinterrupt wieder aktiviert. Kann das Pin-Change-Interrupt-Timing
Danke für Deine Hilfsbereitschaft! Eigentlich ist das schon richtig so: An PB2 ist der Taster. An diesem Pin wird der interne Pull-up eingeschaltet. Drücke ich den Taster, wird der Port an Masse gelegt. Der Pin hat 2 Interrupt-Funktionen INT0 und PCINT2. Ich habe mich für den Pin-change interrupt
-
Thread
Attiny13a deep sleep - external interrupt
Nils L. schrieb im Beitrag #6571259: > Hat jemand eine Idee woran das liegen könnte? Der Taster prellt.
Peter D. schrieb im Beitrag #6571291: > Der Taster prellt. Daran habe ich auch schon gedacht. Ich weiß nur nicht, wie ich meinen Code anpassen muss, damit der µC so reagiert wie er soll. Der Taster soll später durch einen Neigungsschalter ersetzt
-
Thread
Interrupts mit Taster auslösen
Ja. Keinen externen Interrupt benutzen. Tasterauswertung mittels Interrupt ist ganz einfach der falsche Weg. [[Entprellung]]
Wenns unbedingt mit Interrupts sein soll, dann den Taster in Hardware entprellen (RC-Glied am Pin des µC, kann ggf. den internen Pullup nutzen).
-
Thread
negative Flanke in C erkennen, Erklärung gesucht
Lothar M. schrieb im Beitrag #6443232: > Das mit den Interrupts für schnarchlangsame Signale (Taster, > Sensoren,...) aus der Umwelt ist ein Irrweg. Im Besonderen, wenn/weil es > anfangs noch funktioniert, aber dann austickt, wenn der Kontakt ein > wenig gealtert
Lothar M. schrieb im Beitrag #6443251: > Nein, denn ein prellender Taster prellt dann zwar (entprellt muss so ein > Ding sowieso werden), kann aber nicht mit zig schnell aufeinander > folgenden Impulsen den Rechner blockieren oder kurz mal Rechenzeit > "stehlen". Ich
-
Thread
Taster mit externen Interrupt prellt
etprellen. Im Beitrag zum Taster entprellen wird auf die externen Interrupts leider nicht eingegangen, aber diese zu benutzen ist Vorgabe. Ich habe versucht einen Timer mit Auftreten des externen Interrupts zu aktivieren, den Interrupt
Pin kontrolliert und eine Variable herunter zählt. Sobald die Taste nicht mehr prellt, wird die Entprellschleife verlassen. Zeitverzögerung dürfte im Bereich unter 10ms liegen, je nach Tastenart. Eleganter sind zyklische Abfragen von Tasten aus dem Timer-Interrupt
-
Thread
Schaltung spinnt nach Einbau in Gehäuse (PP-Rohr)
wurde kommt der Interrupt für steigende Flanke - key release Anschließend wieder auf fallende Flanke programmieren. Anmerkung: 20ms reichen normalerweise zur Entprellung Die Taste prellt nur beim Drücken, nicht beim
Andreas B. schrieb im Beitrag #5589201: > Die Taste prellt nur beim Drücken, nicht beim Loslassen. Das würde ich nicht unterstreichen! Außer du hast eine Taste mit Hg-benetzten Kontakten, die prellt dann aber auch beim Drücken nicht.
-
Thread
Drehimpulsgeber spinnt
Ich taste im Takt des Mikrocontrollers ab. (ohne interrupt, ohne timer, kann das zu schnell sein?) wenn einer der beiden Spuren seinen Zusand (im gegensatz zum vorher gespeicherten Wert) ändert wird vor,bzw
>Ich taste im Takt des Mikrocontrollers ab. (ohne interrupt, ohne timer, >kann das zu schnell sein?) Nicht zu schnell, aber zu ungenau... Hast du mal ein Oszi dran gehängt und geschaut wie lang die Pulse
-
Thread
Wieder mal Tastenabfrage geht das auch so?
daran jetzt einfacher? Überleg dir einfach mal, was da alles zu tun ist, wenn du 5 Tasten angeschlossen hast. Das wir massig Code, schon alleine deswegen weil du für 5 Tasten dann Buch führen musst, wie lange es her ist, dass der entpsrechende Interrupt gesperrt wurde. Die PeDa Tastenabfrage
Irgendwie geht die Entprellproblematik immer noch an mir vorbei. Ich frage einfach die Tasten im 1ms-Interrupt ab und was 2 mal gleich ist, gilt - habe ich da jetzt irgendwas verpasst?
-
Thread
Handbetriebenen Drehgeber ohne Timer auswerten
Tasten auswerten und dann ein LED-Muster weiterschalten). * Anfänger: Interrupts. Quasi statt RTOS. * Allwissend: RTOS und Interrupts. Aber "Erdstrahlen" aka Race Conditions * Erfahren: Zyklisch (aka
Uwe K. schrieb im Beitrag #7986414: > Grundregel: > Was prellt, darf nicht an den Interrupt. Völlig richtig! Wer macht denn sowas?
-
Thread
Was spricht für eine Entprellung mit Hardware?
abc schrieb im Beitrag #4511777: > Nicht entprellt per Interrupt ist aufwändiger.. In 99,99% der Fälle ist ein Interrupt für Taster in einem normalen Programmablauf nicht nötig. So einen Interrupteingang für einen Taster braucht man eigentlich nur, um einen uC
300ms entprellt. > > Das sind genau diese Geräte, die ich am liebsten anzünden würde. Wenn der Taster nunmal diese Zeit prellt lässt sich daran nichts ändern. Wenn der Taster aber nur 20ms prellt und ich ganz hastig drücken will ändere ich in meinem #define für die Entprellzeit einfach eine Zahl und
-
Thread
Button EXTI nicht zuverlässig STM32
der über einen Interrupt Einen mechanischen Taster oder Schalter schließen nur Anfänger und Profis an eine Interruptleitung an. Die Einen, weil sie wissen, was sie tun. Die Anderen weil sie es nicht wissen.
und 1V/DIV... Mit einer Hardware-Entprellung würdest du nicht solche Flanken sehen können. Ein Taster prellt immer, es sei denn er ist ein Leitgummi-Taster. Bei deinem Oszi-Bild bin ich daher sehr skeptisch.
-
Thread
Pin Change Interrupt oder Pin pollen?
Hans schrieb im Beitrag #6222795: > Wann fragt ihr wie einen pin ab? > Z.b. wenn ein Taster drann geschlossen ist? Bei Tastern niemals via Pin-Change Interrupt, weil völlig unklar ist, wie oft der aufgerufen wird (wenn der Taster prellt).
Stefan ⛄ F. schrieb im Beitrag #6223345: > Bei Tastern niemals via Pin-Change Interrupt, weil völlig unklar ist, > wie oft der aufgerufen wird (wenn der Taster prellt). Wenn du mit dieser Taste den µC wecken willst, wie geht das ohne Interrupt? Ich
-
Thread
STM32: Wie funktioniert diese Entprellung?
. Ein externer Interrupt ist nur dann notwendig, falls man den MC per Taste aus dem Power-Down aufwecken will. Diese Routine liefert schon exzellente Ergebnisse bezüglich Entprellung und Störunterdrückung bei sehr geringer
im Web rumgeistern. Man kann sie bestenfalls noch etwas optimieren, insbesondere, wenn mehrere Taste zu entprellen sind. Z.B. reicht ein 2Bit-Zähler bei ~10ms Timerintervall aus. Dann kann man mit nur 2 Variablen bis zu 32 Tasten parallel entprellen. Und man kann im Interrupt gleich das Gedrückt-Ereignis
-
Thread
Nach einer Interrupt Routine wird der PORT zurückgesetzt
Ja der Interrupt wird durch einen Taster ausgelöst. Laut Datenblatt werden die beiden Interrupts mit Steigender Flanke getriggert.
Daniel V. wrote: > Ja der Interrupt wird durch einen Taster ausgelöst. Laut Datenblatt > werden die beiden Interrupts mit Steigender Flanke getriggert. Taster an Interrupts zu hängen ist generell eine schlechte Idee, da Taster
-
Thread
Entprellen von Schalter mit Interrupt und PinChange
Tasten an nen Interrupt zu hängen sollt man grundsätzlich lassen. Beim prellen im kHz Bereich kanns vorkommen, dass der AVR dann nurnoch ISRs abhandelt. Wenn die Taste unbedingt am Interrupt hängen muss
nurnoch ISRs ab und nicht das eigentliche Programm! Dafür das Abstellen der ISR in der ISR! [c] ISR(TASTE_INTERRUPT_VEKTOR) { // Würde gerne Interrupts einschalten, ohne ständig aufgerufen zu werden: DeaktiviereTasteInterrupt(); PrellenAbwartenTimerStarten(); ... [/c] STK500-Besitzer schrieb
-
Thread
Externer Interrupt
Interruptroutine eine Warteschleife hat, aber du wirst schon wissen was du machst. Ich würde statt Interrupt vergewaltigen und unterdrücken lieber den Taster entprellen.
@Cerberus: Solange der Controller sowieso läuft, kann man den Taster meistens auch im Rahmen eines Timer-Interrupt pollen (ms-Bereich). Soviel Zeit hat man immer. Wie Hannes schon schrieb, kann man einen Controller per Interrupt aufwecken. Dafür muß man den Taster
-
Thread
Lichtschranke an Atmega. Ich versteh's nicht.
Hallo liebe Gemeinde. Ich benutze die angehängte Schaltung um eine Gabel-Lichtschranke per Interrupt auszulösen. Leider "prellt" die Angelegenheit. D.h. es kommen zu viele Interrupts und auch welche an der falsche Flanke. Was ich nicht verstehe ist, dass die Flanken immer so wie im Screenshot
) einen Interrupt auslösen. Subjekt und Objekt. Ursache und Wirkung. Sollte man nicht vertauschen. > Leider "prellt" die Angelegenheit. D.h. es kommen > zu viele Interrupts und auch welche an der falsche Flanke
-
Thread
Entprellen in C, schlanke Routine
************ Funktion kann im Hauptloop stehen, oder per Interrupt regelmässig aufgerufern werden. Taste gedrückt entspricht Pegel "0". In 'status' wird eine '1' von rechts nach links geschoben, die die letze Flanke '1->0' darstellt. Falls Taste nicht prellt
Entprellung vorschlagen: 1) Die erste Flanke triggert einen Speicher (z.B. flankengetriggerter Interrupt) 2) Danach interessiert mich die Taste erstmal nicht, d.h. ich ignoriere sie für mindestens die Prell-Zeit. 3) Dann werte ich die Taste wieder aus (Interrupt scharf schalten) Mit dieser Entprellung
-
Thread
AVR Interrupt Problem in C
Was hängt an dem Pin für "INT0", ein Taster? Wenn ja, vielleicht prellt Der und der Interrupt wird mehrmals hintereinander ausgeführt.
test schrieb im Beitrag #4376826: > Was hängt an dem Pin für "INT0", ein Taster? Wenn ja, vielleicht > prellt > Der und der Interrupt wird mehrmals hintereinander ausgeführt. arbeite mit einem dev board, welches eigentlich mal für pic controller war. wegen dem nachprellen
-
Thread
taster über analogeingang abfragen
zum Interrupteingang. Offene Taster - kein Interrupt, irgendeiner gedrückt - Interrupt (muss der high oder low sein?).
mode laufen lassen, den Interrupt nutzen An jede Taste noch eine Diode, darüber digitalen Eingang zum Interrupt nutzen Gruß Jens
-
Thread
Programmablaufplan mit Interrupt
Tja, da so ein Interrupt "immer" stattfinden kann, kann man den Code in der Interrupt-Service-Routine und als eigenständigen/ nebenläufigen Ablauf darstellen. Nur Taster lösen keinen Interrupt aus, denn sie Prellen und
Tja, da so ein Interrupt "immer" stattfinden kann, kann man den Code in der Interrupt-Service-Routine und als eigenständigen/ nebenläufigen Ablauf darstellen. Nur Taster lösen keinen Interrupt aus, denn sie Prellen und
-
Thread
Müssen Tasten am PCF8574 entprellt werden?
zum Beginn einer Abfrageprozedur sowieso so viel Zeit vergeht, dass der Schalter dann nicht mehr prellt. Vielleicht mache ich aber hier sowieso einen Gedankenfehler. Die PCF8574 wollte ich sowieso nur abfragen, wenn das Interrupt-Signal des PCF8574 einen Wechsel anzeigt. Vergessen hatte ich zu erwähnen
>sowieso so viel Zeit vergeht, dass der Schalter dann nicht mehr prellt. Wie lange ist das? 1ms? 10ms? Soooo langsam ist I2C auch nicht bei 400kbit/s. Klar kann man mit gemächlichen 10ms oder gar 100ms die Tasten auslesen, dann muss man wohl nicht mehr entprellen
-
Thread
Interrupts bei Mikrocontrollern
mit Interrupts und einem Taster beschäftigt. Hier teilte man mir freundlicherweise mit, dass man Taster und Interrupts eine ungeeignete Kombination seien. Hier würde ich gerne noch ein "wieso" hören, das vergaß
Alex A. schrieb im Beitrag #2876893: > Hier teilte man mir freundlicherweise mit, > dass man Taster und Interrupts eine ungeeignete Kombination seien. Hier > würde ich gerne noch ein "wieso" hören, das vergaß ich nämlich in meinem > Thread zu fragen. Taster prellen --> mehrere Interrupts hintereinander
-
Thread
AVR ASM Interrupt Priorität
Wie sieht es denn bei folgenden Beispiel aus! Ich habe zum Beispiel einen Overflow Timer Interrupt und ein INT0 Interrupt, wo ein Taster dran ist. Beim Timer Interrupt wird eine Variable hochgezählt. Btw. muss die volatile sein? So jetzt halte ich den Taster gedrückt. Kommt der Timerinterrupt
Anwendungen nicht die optimale Lösung sein. Nein, umgekehrt: Über Interrupt ist nicht die optimale Lösung. Jeder Taster prellt. Wenn er beim Niederdrücken z. B. fünf mal prellt, dann gibts zwei Möglichkeiten: 1. Der INT0-Handler wird auch fünfmal aufgerufen, weil er
-
Thread
Taster Softwaretechnisch entprellen
Prellt noch immer ^^.
Na mit Warteschleifen. Warscheinlich stellen sich sogar dem Taster die Nackenhaare auf... doch Gast
-
Thread
Tasten entprellen per Software
Taste nicht prellt, sind Deine 30-40ms OK. Wenn die Taste prellt, wird es eng.
prellen (werden), kost nix, schadet nich... Ich hatte allerdings noch keinen am Oszi, der nicht prellte (OK, bin kein Tasten-Tester-Freak ;). Selbst diese (damals vor >25J, gibts aber sicher immer noch (Die ohne Elektronik!)) "Digital-Taster" die angeblich nicht prellten. Irgend wann taten sie es dann
-
Thread
Aufwachen aus Powerdown mit INT0 falling und internen Pullup
wartet solange bis INT0 wieder high wird und arbeitet dann die Befehle der ISR ab? Und wenn der Taster prellt, dann werden evtl. die ersten Befehle der ISR abgearbeitet bis der µC wieder an den Anfang der ISR springt weil INT0 wieder im Prellen low geworden ist?
der INT0 auf Low bleibt, dann wird nach dem Ende der ISR sofort wieder in die ISR gesprungen. Der Interrupt wird ständig ausgelöst solange INT0 auf low ist. Prellen wird nicht drin Problem sein, aber wenn der Taster gedrückt gehalten wird, diesen Fall solltest du bedenken. gruß cyblord
-
Thread
Tasten entprellen : Syncronisierung Systick und Exti GPIO Interupt
Routine aufruft nicht mehr zu arbeiten. Frage: Wei kann ich eine Zeitverzögerung innerhalb der Tasten Interrupt Routine ausführen um den Taster zu entprellen ?? Danke.
Lösung mehr als 1 Interrupt auf. >>> Frage: >>> Wei kann ich eine Zeitverzögerung innerhalb der Tasten Interrupt >>> Routine ausführen um den Taster zu entprellen ?? Antwort: am einfachsten mit einer Zählschleife. So
-
Thread
Arduino Taster entprellen
InitTaster(); } void loop() { delay(100); } void InitTaster() { pinMode(TasterPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(TasterPin) , Debounce4Int0 , LOW); EIMSK = B00000001; // Interrupt on } void Debounce4Int0() { EIMSK = B00000000; // Interrupt off bToggleTaster = !bToggleTaster; TOGGLE(LED_BUILTIN); Serial.print("---> "); Serial.print(bGlobalTasterState
-
Thread
power down ATMEGA664
was ich gerade nicht verstehe ist: wenn ich den taster drücke, dann prellt er - soweit klar. aber da ich den interrupt deaktiviere, sollte das doch egal sein. Oder sehe ich gerade den Wald vor Bäumen nicht Gruß, Alex
Alex wrote: > was ich gerade nicht verstehe ist: wenn ich den taster drücke, dann > prellt er - soweit klar. aber da ich den interrupt deaktiviere, sollte > das doch egal sein. Oder sehe ich gerade den Wald vor Bäumen nicht Interrupt Flags werden *immer* gesetzt,
-
Thread
Zeit für die Programmbearbeitung berechnen.
Schleife laufen lassen, welche so lange läuft bis 250 Zyklen der gleiche Wert stehen bleibt. Wenn ein Taster nun also lange prellt läuft die Schleife etwas länger, wenn ein Taster gar nicht prellt läuft die Schleife 250 durchläufe, was bei 11,059200 MHz ungefähr 23ms sind. Hier ist meine "Not-Lösung",
überhaupt funktioniert. ...egal es funktioniert und das sogar "Sau schnell" ;-) Wenn ich mal einen Taster habe der vielleicht länger prellt, dann müsste ich auf einen 16 Bit Integer ausweichen und ein paar µs dazu geben.
-
Thread
Mehrere Buttons an einem Interrupt Pin
Sobald so ein Taster prellt, wirst du deine Freude mit deinem externen Interrupt haben, weil du diesen dann z.B. gleich dreimal aufrufst. Ich war ganz am Anfang auch so wie du, ich war der Meinung, das geht schon, und
@Dennis H.: Ich habe sonst immer Taster an Interrupts, aber diesmal ist das Problem, dass ich zu wenig Interrupts frei habe. Und sonst hatte ich auch nie ein Problem. Ich hatte immer folgenden Ablauf: Taster gedrückt -> Interrupt aufgerufen
-
Thread
Entprellen..schon alles versucht..Atmega zu schnell?
Weine nicht, wenn Dein Taster prellt, DAMDAM, DAMDAM nimm ein Schütz, das sich selber hält, DAMDAM,DAMDAM Elko, LED, Platine bricht, aber der Kontroller nicht... ;-) MfG Paul
Paul Baumann schrieb im Beitrag #1701975: > Weine nicht, wenn Dein Taster prellt, DAMDAM, DAMDAM > nimm ein Schütz, das sich selber hält, DAMDAM,DAMDAM > > Elko, LED, Platine bricht, > aber der Kontroller nicht... > > ;-) > MfG Paul LOL!!!! wo kann ich das
-
Thread
Tutorial, tasten in asm
************************************************* Nun kann es natürlich sein, dass ein neuer Taster zunächst überhaupt nicht prellt. Ist der Taster vom Hersteller nicht explizit als 'prellfreier Taster' verkauft worden, besteht aber kein Grund zur Freude. Auch wenn der Taster heute noch
Claude44 schrieb im Beitrag #4408560: > ich kann nicht beurteilen ob die interrupt richtig reagiere Ich sehe im Programm keinen Interrupt. Gruß Dietrich
-
Thread
AVR Assembler Interrupts zählen
Hallo, ich habe nun den im Anhang befindenden Code zusammengestellt um meine Interrupts zu zählen. Interrupt 0 (über mechanischen Druckschalter aktiviert) soll dafür sorgen das BIT 0 von PORTB angeht (bzw. die Diode die am Port hängt) sobald die Taste zum erstenmal gedrückt wurde
schrieb im Beitrag #4616378: > Ich habe mittlerweile eine Warteschleife für das Entprellen der Taster > eingefügt. Trotzdem funktioniert das Programm nicht. Hat mir jemand den > Hinweis warum das so ist? Weil es verkehrt ist. Bei INT1 ist es absolut egal, ob der Taster prellt oder nicht, deswegen
-
Thread
Tasten entprellen
ist, sich im laufe der Zeit auch ändern kann und Störimpulse ausfiltern... Damit kann man einen Taster, wehrend er noch prellt, recht sicher auswerten.
also mal einer etwas länger prellt und dies von der Routine erkannt wird, erhöht sich die Entprellzeit um weitere 10ms, auf 50ms. Das ein Taster viel länger als 10ms prellt kommt sicherlich auch vor, aber nach 20ms ist da wohl wirklich
-
Thread
c18 Bit Verschiebung
> aber er schiebt um 2 ... woran kann das liegen? Ich denke mal es liegt daran, dass dein Taster prellt. Es gibt keinen Grund Taster über einen Interrupt anzuhängen (ausser wenn der INterrupt den µC aus dem Tiefschlaf holen muss). Ganz normales Pollen reicht völlig aus. In Kombination mit
sieh's doch ein: beim drücken, wird ein interrupt ausgelösst und korrekt abgearbeitet (um 1 shiften). da der taster prellt, wird ein zweiter interrupt ausgelösst, der nochmals um 1 shiftet. dies geschieht so schnell, dass du glaubst, es wäre nur
-
Thread
Software-Entprellung via Timer
dabei und stehe momentan vor einem kleinen Problem. Ich habe einen Mega32 und hab an den externen Interrupt1 einen Taster angeschlossen. Dieser prellt nun doch sehr heftig und nun versuche ich mich gerade an einer Software-Entprellung. Eine einfache Warteschleife wollte ich nicht nehmen da ja sonst alles
eventuell ist es nicht rübergekommen - ich betreibe die Taster nicht direkt am Interrupt, sondern der Interrupt sagt mir das eine Taste gedrückt wurde und dann wird der entsprechende Port wo die Tastatur hängt herkömmlich abgefragt. Wieso sollte ich ständig
-
Thread
Entprellen für Anfänger
Was machst du wenn deine Taste länger als 100ms prellt, oder wenn du ein Zeitkritisches Programm hast und nicht 100ms "übrig"? Gruß Fabian
die Taste war betätigt und ist nun nicht betätigt und entprellt gibt mir die funktion i=0 zurück und das flag ist 0 (wenn die Taste prellt, ist >>>i=0<<< und die schleife wird mit break unterbrochen) sollt
-
Thread
Interrupt/taster
Marcel R. schrieb im Beitrag #6074287: > Die Frage wäre jetzt, wo genau ich den Taster mit einfüge? Dein Plan ist doch, dass der Tastendruck einen Interrupt auslöst. Die entsprechende ISR hast du bereits geschrieben. Das wird aber nicht wie gewollt funktionieren, weil jeder Taster
Marcel R. schrieb im Beitrag #6074408: > hab nur gedacht, man müsste den Taster nochmal extra einfügen irgendwo. Warum denn? Der Taster löst den Interrupt aus, der Interrupt sorgt dafür, dass die ISR angesprungen wird. Da fehlt nichts.
-
Thread
keine konstante Frequenz am ATMega8 Ausgang
Der Fehler ist sichtbar: Der Taster prellt, EXT_INT0 und damit das Timer setzen/starten wiederholt sich. gruß hans
prellt der Taster und erzeugt einen weiteren Impuls, der PB 0 auf L setzt. Wenn schon auf diese Art, dann den Ext INT in seiner IRQ sofort ausschalten, am Ende der Impulsfolge evtl. dort noch anstehende
-
Thread
Tastendruck mit ext. Interrupt erfassen
und in der Interrupt-Routine abfrage, welcher Taster gedrückt ist. Wenn aber alle Taster an den selben Pin angeschlossen werden (ext. Interrupt-Pin), würde das bei einer gedrückten Taste dazu führen, dass alle Taster
externen Interrupts hast Du das Problem des Prellens. Es soll ja Schildbürger geben, die Tasten über externe Interrupts betreiben, um dann einen Timer zum Zweck der Entprellung zu bemühen. Das kann man sonderbar finden