-
Thread
Datenlogger Pendeluhr
Temperatur_C;Luftdruck_hPa;Luftfeuchte_Prozent"); dataFile.close(); } } // Interrupts aktivieren attachInterrupt(digitalPinToInterrupt(GPS_PPS_PIN), ppsISR, RISING); attachInterrupt(digitalPinToInterrupt(LICHTSCHRANKE_PIN), lichtschrankeISR, FALLING); Serial.println("
Interruptbearbeitung. Je nach Priorität muss der restliche Programmablauf warten. Solange niemand das Interrupt-Flag löscht, werden die Interrupts der Reihe nach abgearbeitet und dann geht es im Hauptprogramm weiter. Die Zeit zwischen Interrupt und Start der Bearbeitung hat man als Latenz. Schwankungen
-
Artikel
Drehgeber
man sieht ist diese Methode nicht geeignet, einen Drehgeber solide zu dekodieren. Auswertung mit Interrupt durch Pegelwechsel. Es wird bisweilen die Auffassung vertreten, dass mit Hilfe von sog. Pin Change Interrupts Rechenzeit gespart werden kann. Dabei wird bei einem Pegelwechsel von Spur A oder B ein Interrupt erzeugt. Dort werden dann A und B eingelesen und vollständig ausgewertet. Diese Methode ist besser, aber nicht gut genug. Sie vermeidet Fehler 1. und 2.2 der oben genannten Auswertung, aber nicht
-
Thread
Debounce von Tasten mit dem Candidate-Pattern (Platformunabhängig, Theorie)
- RC-Filter bei sehr einfachen Schaltungen ohne Softwarelogik - Timer-Debounce bei einzelnen Tastern mit Interrupts - Integrator-Methoden bei stark verrauschten Signalen In vielen Mikrocontroller-Anwendungen mit zyklischer Eingabeerfassung stellt das Candidate-Pattern jedoch eine sehr einfache
Zustandsänderung bearbeitet wird. --- ## 🟦 **Level 17: Debounce als „Gedicht“** [pre] Ein Taster prellt, die Zeit hält still, erst wenn er schweigt, weiß ich, was er will. [/pre] --- ## 🟩 Fazit **Man kann Abstraktion** so weit treiben, dass sie komplett lächerlich wird. Und genau
-
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
Signalkonditionierung für Flügelradzähler
funktioniert jetzt bei 100Hz. Habe eine Beispiel-Applikation gefunden, die den Status einer nativen Taste des μCU per Interrupt überwacht. Den Code nun etwas angepasst, damit ein bestimmter externer Hardware-Pin als Quelle verwendet wird. Einen zweiten μCU verwende ich als Quelle, der generiert eigentlich
funktioniert jetzt bei 100Hz. Habe eine Beispiel-Applikation > gefunden, die den Status einer nativen Taste des μCU per Interrupt > überwacht. Was hast du dabei immer mit dem Interrupt. Was spricht gegen einen simplen Timer/Counter, der direkt die Pulse am GPIO als Takt bekommt und ganz ohne Softwareaktivität
-
Thread
Elektronische steuerung von 3 Relais.
Tiny85, 1x Kondensator, 3x Transistor, 3x Freilaufdiode) für die Ansteuerung hin. Die Relais und den Taster zähle ich nicht dazu, die sind eh' schon gesetzt. Das Programm ist nicht arg aufwendig. Es kann in der für den Hardwareaufbau gesparten Zeit auch einfach mit Delays ganz ohne Verwendung von Interrupts
Zähler einfügen: [c] void Warte_auf_Tastendruck(void) { while (!(PINB&1)); // Warten, wenn Taster noch gedrückt for (int ec=0; ec<10; ec++) { if (PINB&1) ec=0; // Zähler rücksetzen, wenn Taster nicht gedrückt bzw prellt _delay_ms(5); } } [/c]
-
Thread
ATmega Power-Down und Wakeup mit INT0
Eine Taste prellt beim Drücken und beim Loslassen. Ob der Interrupt auf Pegel oder welche Flanke reagiert, kann man so nicht erkennen. Du brauchst einen sauberen Taktgeber, z.B. einen 2. µC oder zur Not mit
> Mal ganz blöd gefragt: wie erzeugt man einen Rising Interrupt > ohne Level davor und danach? Die Frage verstehe ich nicht - aber hier mein Vorgehen: INT0 (=PD2) mit externem Pull-down, Taster zieht auf high. Programm lässt LED langsam blinken, ein paar
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
, > dass der Schließer früh genug öffnet, prellt die Taste nicht! Unfug. Die Tasten, erst recht bei dem Alter, prellen mechanisch. Wenn man das weghaben will, muss man es in Software entprellen. In Hardware geht es hier nicht, da die Tasten an
Günter K. schrieb im Beitrag #7900759: > Denn der Taster prellt nicht! Unglaubwürdig.
-
Artikel
Entprellung
Funktionsweise: Beim Umschalten wird der Kondensator immer sofort umgeladen. Während der Kontakt prellt, befindet er sich in der Luft und hat keinerlei Verbindung. Während dieser Zeit übernimmt der Kondensator das Halten des Pegels. Dimensionierung: Ist der entprellte Taster an ein IC angeschlossen,
den Widerstand R 2 . Demnach ändert sich der Ausgang des Inverters auf den Pegel 1. Während der Taster prellt, kann sich die Spannung über dem Kondensator nicht sprunghaft ändern, da das Auf- und Entladen eher langsam über die Widerstände erfolgt. Außerdem sind die Schaltschwellen für die Übergänge
-
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
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
Problem mit DS7102
Hallo, leider habe ich ein Problem mit mein DS7102. Wärend der Messung gaben plötzlich alle Taster und Bedienelemente den geist auf. Das Oszi misst und zeigt Werte an allerdings kann ich keine Einstellungen mehr vornehmen. So als wenn die Tasten nicht mehr angeschlossen wären. Den strom habe
Vielleicht klemmt lediglich ein Taster.
-
Thread
Counter für Reedkontakt - was mache ich flasch?
eine Entprellung brauche, habe ich nach dieser "Anleitung" https://www.mymakerstuff.de/2018/04/16/taster-entprellen-die-rc-schaltung/ eine Entprell-Schaltung aufgebaut. Aber auch damit ist es nicht besser. Jetzt zählt der Counter nämlich gar keine Pulse mehr. Um ehrlich zu sein bin ich mir da aber
ist. Unsinn. Denn die Abfrage der Kontakte erfolgt quasi parallel per [[Timer]]-Interrupt]]. Und da deine Kippwagen im Verhältnis zu einem Mikrocontroller schnachlangsam schalten (Pulsbreite >100ms), ist das alles sehr entspannt. > Das ist > schlecht, da dadurch natürlich falsche
-
Thread
Inkrementalgeber an CMOS Dekadenzähler CD4017
Hallo, RC Entprellung kannste für Taster machen aber nicht wenn es für einen Zähler ist, der soll ja schließlich immer präzise zählen und selbst einen Taster entprellt man in Software. µC hat den Vorteil das Programm ist jederzeit änderbar
Bluepill umzusetzen, die ich noch hier habe. Für den Anfang könnte ich die Eingangspulse per Interrupt zählen, oder eleganter über den Encoder Mode. Dann deb Wert aus der Division einem Timer übergeben, der ein Rechtecksignal erzeugt.
-
Thread
Zeigt her eure Kunstwerke (ab 2023)
Das LCD wir aktiviert und ich kann mit dem Poti die Helligkeit regeln. Mit dem Poti neben den Tasten Start und Reset kann ich zwischen sechs Härtegraden wählen. M Weich, M Mittel, M Hart, XL Weich, XL Mittel und XL Hart. Mit der Taste Start wird der Hinterlegte Zeitwert runtergezählt. Mit der Taste
habe ich sie alle verkauft. Den ein oder anderen hätte ich gerne behalten, aber bei den meisten prellten die Tasten. Das macht dann nicht wirklich Spaß.
-
Thread
Matrix mit 5x Rotary Encoder für STM32 uC
um die RotaryEncoder etwas zu entprellen? Die Timer zählen korrekt, aber es kommen tonnenweise Interrupts (trotz Filterung per status flag). Und das Up/Down Flag ist falsch, während man im Interrupt ist.
RotaryEncoder etwas > zu entprellen? Die Timer zählen korrekt, aber es kommen tonnenweise > Interrupts (trotz Filterung per status flag). Und das Up/Down Flag ist > falsch, während man im Interrupt ist. Schaue dir mal die Funktion "encode" an. Die ist auch im Interrupt stabil und prellfrei.
-
Thread
Dreh-Encoder getauscht, nun geht nix mehr.
S.B. schrieb im Beitrag #7230440: > 2 Taster an den beiden Eingängen bewirken beim Druck auf den einen das > Herunterzählen des Wertes im Display, bei Druck auf den anderen nix. Dann nutzt die Software den störanfälligen externen Interrupt
beiden Signale einfach periodisch in einem Timer-Interrupt einzulesen und mittels einer State-Machine auszuwerten. Das funktioniert ausgezeichnet, auch wenn der Schalter stark prellt und man sehr langsam oder sehr schnell dreht. Eine hardwaremässige Entprellung
-
Thread
wie erzeuge ich von einem windows laptop aus einen 1 mikrosekunden puls mit 3.3 Volt
Hi was muss ich tun: ich habe eine STM32 PCB und habe einen PIN auf external interrupt geschlatet. Für testzwecke will ich auf diesem Pin PC gesteuert Pulse geben und einen Interrupt auslösen. Aktuell generiere ich diesen Signal über einen USB Relay. https://www.amazon.de/HALJIA-Module-Control-Switch-Intelligent
Beitrag #7204346: > was muss ich tun: ich habe eine STM32 PCB und habe einen PIN auf > external interrupt geschlatet. Für testzwecke will ich auf diesem Pin PC > gesteuert Pulse geben und einen Interrupt auslösen. > Aktuell generiere ich diesen Signal über einen USB Relay. > https://www.amazon.de/
-
Thread
Magnetic Loop Steuerung (Arduino)
StepperPos = -s; //change the 1 to steps to take when encoder turned } last_interrupt_time = interrupt_time; } } void doEncoderB() { static unsigned long last_interrupt_time = 0; unsigned long interrupt_time = millis(); // If interrupts come faster than 200ms, assume
} void loop() { long Counter; static long lastCtr; noInterrupts (); Counter = count; interrupts (); static unsigned long last_interrupt_time = 0; unsigned long interrupt_time = millis(); // If interrupts come faster than 200ms, assume it's a bounce
-
Thread
Kann man mit OCR1B rechnen
dringend die Architektur deines Codes > überdenken... Wenigstens solltest du warten, das die Taste wieder losgelassen wird. Das ist immer noch nicht optimal, weil jeder mechanische Taster prellt, aber schon mal ein Schritt nach vorne. Als nächstes könntest du dich mit Tastenabfragen beschäftigen
Matthias S. schrieb im Beitrag #7099670: > Wenigstens solltest du warten, das die Taste wieder losgelassen wird. > Das ist immer noch nicht optimal, weil jeder mechanische Taster prellt, > aber schon mal ein Schritt nach vorne. Als nächstes könntest du dich mit > Tastenabfragen
-
Thread
Lebensdauer Drehdencoder oder Poti
eines billigen potis ist der eines solchen inkrementalgebers überlegen. Gibt es analoge potis mit Taster?
>> ein µC zur Dekodierung in Frage. Und dem ist es egal, ob man >> die schlechte Lösung per Interrupt oder die richtige Lösung >> per Zustandsauswertung verwendet. > Interrupt und Zustandsauswertung ist kein antagonistischer Widerspruch. > Man kann Interrupts so auswählen und programmieren,
-
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
Reihenfolge von Tastern merken Arduino
? 6 Tasten gedrückt zu halten, sind das rastende Tasten?
Lothar M. schrieb im Beitrag #6963157: > was gilt denn dann > als "zuerst betätigt"? Der Taster, der zuerst Kontakt gegeben hat, oder > der, der sich zuerst "beruhigt" hat? Ich glaub das wäre egal, wenn man die Tasten alle 1ms einliest. Beim Interrupt würde ich vllt. die Flanke nehmen, aber
-
Thread
Drehgeber an Arduino, external interrupt ISR wird doppelt ausgeführt
bestimmt und es wird vorerst 2 sekunden gewartet damit das clk Signal auf jeden Fall nicht mehr prellt. Wegen dem Prellen setze ich am Ende noch das Interrupt Flag register zurück um den besagten merfachaufruf zu verhindern und aktiviere den externen Interrupt wieder. [c] void loop() { if(int0
geht es, alle 1ms den Drehgeber bzw. die Tasten abfragen, aber niemals die Flanke am Pin direkt einen Interrupt auslösen lassen.
-
Thread
ESP8266, Micropython, hängt teilweise, ev. IRQ- und/oder GPIO0-Problem?
) ledT3 = Pin(12, Pin.OUT) ledT3.value(False) ledT4 = Pin(16, Pin.OUT) ledT4.value(False) taster1 = Pin(0, Pin.IN, Pin.PULL_UP) taster1.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt) taster2 = Pin(5, Pin.IN, Pin.PULL_UP) taster2.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt) taster3 = Pin(4, Pin.IN, Pin.PULL_UP) taster3.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt) taster4 = Pin(14, Pin.IN, Pin.PULL_UP) taster4.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt
-
Thread
ESP8266 Interrupt
jetzt gerade mal etwas geschrieben nur weiß ich nicht ob es etwas bringen würde das Programm (UpdateTaster) per Interrupt aufzurufen?
gerade mal etwas geschrieben nur weiß ich nicht > ob es > etwas bringen würde das Programm (UpdateTaster) per Interrupt > aufzurufen? Warteschleifen in ISR sind böse. Wenn zu lang, macht der Watchdog sogar einen Reset. Dein versucht, Tastendrücke per ISR zu erfassen, ist schon problematisch. Das
-
Thread
Frage zu PeDa Drehgeber Code
geändert haben bevor ein neues "A" akzeptiert wird und umgekehrt. so ist egal wie viel mal der Kontakt prellt.
Clock ->U/D schaltung ist nicht Praktikabel bei diesen Reglern. Deshalb löse ich dies immer per Interrupt und Flag's das heist beide (A+B) werden mit einem Interrupt abgefragt und (Int A braucht immer ein Vorhergehenden Int B das heißt ist ein Interuppt aufgetreten muss zuerst der andere Int auftreten
-
Thread
uC Programmiertechniken - Gibt es da Bücher?
Drückt man die wird die aktuelle GPS Position samt aller Daten des Strings auf SD Karte gesichert. Prellt natürlich wie Hulle das Teil, beim Drücken und Loslassen. Übergeordnet läuft ein 1s Timer INT, der das Tastenflag entgegen nimmt und die Taste nach 2s wieder freischaltet für neue Drücke (fallende
man die wird die aktuelle GPS Position > samt aller Daten des Strings auf SD Karte gesichert. Prellt natürlich > wie Hulle das Teil, beim Drücken und Loslassen. > > Übergeordnet läuft ein 1s Timer INT, der das Tastenflag entgegen nimmt > und die Taste nach 2s wieder freischaltet für neue Drücke
-
Thread
Auslesen eines Port-Expanders
Gefühl dafür, wie langsam oder schnell sowas via Port-Expander geht. Anschließen würde ich den Interrupt-Pin allerdings eh, da ich ihn zum Aufwachen des ESP32 brauche. Also der geht zum Stromsparen nach einer Weile in den Deepsleep und mit einer Taste weckt man den wieder auf.
übergibt. Grund war IMHO auch, dass nicht alle Eingänge am uC interrptfähig waren. Und wenn ein Taster wirklich prellt, bekommt man evtl. auch Probleme, je nach weiterer Auswertung.
-
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
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
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
Anfängerfrage AVR GCC
Wenn es egal ist, dass auch der Ausgang potentiell prellt (also beim Drücken der Taste von 50Hz auf 37Hz auf 50Hz auf 37Hz springt) und erst nach ein paar zig Millisekunden stabil auf 37Hz liegt, brauchst du dir um Prellen in dieser Anwendung keine Sorgen
sein. ADC-Interrupt? Kann man nehmen, muss man aber nicht. Immer mal wieder aufrufen im Single Conversion Mode. Am besten in Kombination (oder jetzt anstatt?) mit den Tasten in einem Timerinterrupt. Neue Werte für
-
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 über externe Stromquelle - GND verbinden?
Christoph K. schrieb im Beitrag #6399693: > Der > Taster wird komplett zufällig alle paar Minuten ohne irgendwelche > Ereignisse geschalten. Das deutet auf einen typischen Softwarefehler hin. Der Taster wird mit einem externen Interrupt eingelesen und
(durch delays), als dass der Taster prellt.
-
Thread
IR Fernbedienung mit IRSND
immer so machen. Vielen vielen Dank Frank. Jetzt muss ich nur noch schauen wie man es macht, eine Taste mit zwei Signalen zu belegen. Taste kurz drücken ist "Wert1" Taste länger drücken ist "Wert2" Gruß Andreas
PCINT-Gruppe sperren }; ... for (;;) { GIMSK = (1<<PCIE0); GIFR = (1<<PCIF0); // prellte da etwas? PCMSK0 = (1<<PCINT3); // Taster auf PB3 MCUCR = (1<<SE)|(1<<SM0); // power-down-mode sleep_mode(); ... if (!(PINB & (1<<PINB3))) // Wenn Taster PB3 low gedrückt
-
Thread
PPS5330 Labor-Netzteil hack
In der letzten Firmware Version 199b9 von Klaus gibts noch ein kleines Problem. Die Tastenabfrage prellt etwas und die Tastenfunktion wird erst nach dem Loslassen der Taste aktiviert. Besonders die Standby- Taste prellt sehr stark. Gruß Rolf
Rolf D. schrieb im Beitrag #7645044: > Die Tastenabfrage prellt etwas und > die Tastenfunktion wird erst nach dem Loslassen der Taste aktiviert. > Besonders die Standby- Taste prellt sehr stark. warum nimmst du nicht PeDas Entprellroutine?
-
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
LED mit Interrupt umschalten
) Interrupts, weil er prellt. Daß Taster nicht per (flankengetriggertem) Interrupt ausgewertet werden dürfen, weiss jedes Kind. 2. Wenn ein Interrupt auf PinChange ausgelöst wird (durch irgendien andere Quelle
diese zu verlinken. Vielleicht stehen da irgendwelche Erläuterungen. Ich würde erstmal ohne Interrupt versuchen, eine LED zum Leuchten zu bringen. Also Taste ein-> LED ein, Taste aus -> LED aus.
-
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
GPIO entstören - Serienwiderstand benötigt?
nicht unterdrückt - zu lang, dann reagiert die Taste nicht mehr auf einen kurzen Tastendruck durch den Menschen, verhindert aber noch besser Störungen. Wenn man keinen Taster hat, sondern nur einen (seltener) bedienten Schalter, dann ist 'zu lang' eher
~300ms, ein Delay von 500ms sorgt daher unweigerlich für Ärger. Ich hab auch schon eingetretene Taster gesehen.
-
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
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
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
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
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
Rotary Encoder machen was sie wollen?!
erklärt, wie er sich die Sache erklärt. Und wenn dein Programm nachweislich so tut, als ob der Taster prellt, dann ist entweder dein Programm fehlerhaft, oder der Taster prellt. Ich sach mal, beides. Oliver
erklärt, wie er sich die Sache erklärt. > > Und wenn dein Programm nachweislich so tut, als ob der Taster prellt, > dann ist entweder dein Programm fehlerhaft, oder der Taster prellt. > > Ich sach mal, beides. > > Oliver Es sind natürlich nicht nur Widerstände, deshalb das "etc.". Auf der Rückseite
-
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.