-
Thread
Störungen an/ druch Matrixtrastatur(kabel)
Verstärkermodul mit dem Rest, kommt es zu Fehlern beim einlesen der Matrixtastatur. Es werden wild Tasten als gedrückt erkannt bis der Controller sich aufhängt bzw. der Watchdog zuschlägt. Das Problem tritt sogar auf, wenn das 7-Adrige Kabel (ca. 30cm) zur Tastatur nur am Board angeschlossen ist, nicht
Abschirmen kann da helfen. Ich kenne jetzt die Tastenroutine nicht, wie gut die entprellt. An Entprell-Libs habe leider schon viel Mist gesehen. Extra Pullups (3,3k) können was bringen. Kondensatoren gehen bei ner Matrix nicht, da sie ja auch pulst.
-
Thread
Mit 3.3V Mikrocontroller 5V schalten
idealerweise zu 0 machst. Bei einem Flachbandkabel heißt das, dass die Rückleitung von einer LED oder einem Taster immer direkt neben der Hinleitung ist. Normalerweise könntest Du das so machen, dass Du bei 10 Tastern einen GND und 10 Tasterleitungen machst. Wenn Du jedem Taster seinen eigenen GND gibst und die
> Taster den eben noch aktiven auslöst ? Ist also eine Art 3er Toggle x > 18... Ja. Das ist eine so grundlegende Designregel, dass es eigentlich egal ist, ob die Taster num in Dreier- oder Fünfergruppen
-
Thread
Atmel Attiny 44a funktioniert unter 3,8V nicht korrekt
alles andere einwandfrei läuft. Zum Aufwachen nehme ich einen leeren Pin-Change-Interrupt, denn das Tasten entprellen und auswerten macht ja bereits der Timerinterrupt. [c] EMPTY_INTERRUPT(PCINT_vect); // wake up from power down [/c] https://www.mikrocontroller.net/topic/223079#2237867
andere einwandfrei läuft. > Zum Aufwachen nehme ich einen leeren Pin-Change-Interrupt, denn das > Tasten entprellen und auswerten macht ja bereits der Timerinterrupt. > [c] > EMPTY_INTERRUPT(PCINT_vect); // wake up from power down > [/c] > Ohne sleep funktion läuft der uC bei 5V als auch 3V. also
-
Thread
Pneumatikzylinder Steuerung
. In > deiner Zeichnung ist es richtig. ok danke ! Das mit den zwei Wiederständen an den Tastern ist echt blöd das sehe ich jetzt erst. Aber sollte man Taster nicht generell Entprellen ? Die sind ja Schließer. Ich zeichne das hier mal provisorisch ein wie ich das eig. Gewollt hatte. Und
Albert H. schrieb im Beitrag #6279616: > Aber sollte man Taster nicht generell Entprellen ? Ja, und ich habe Dir oben auch aufgezeichnet, wie man das macht. Auch am Ausgang des Sensors brauchst du einen Pull-Down Widerstand. 100k@ ist viel zu hochohmig
-
Thread
Tasten gesteuertes Lauflicht
, bis auf den Taster. Könnte mir jemand helfen, was ich ändern muss damit ich mit dem Taster die LEDs ein und ausschalten kann? Hier das Programm: #include "stm32f411xe.h" #include "uart.h" #include <stdio.h> /*
Die Entprell-Routine hat einen Logigfehler. Ich lese sie so: [pre] Wenn Taste gedrückt wurde, dann warte 10ms nur wenn Taste dann immer noch gedrückt ist, dann warte solange die Taste nicht gedrückt
-
Thread
VHDL Impulszähler spinnt
Da fehlen wohl zwei Vorgänge in deinem unbekannten VHDL-Code: 1. Signal vom Taster entprellen z.B. mit einem Zähler, der losläuft, sobald der Taster gedrückt ist und zurückgesetzt wird, sobald der Taster nicht gedrückt ist. Bei einem bestimmten Zählerstand (höchstwertiges Bit nehmen
für BT(1) : : stsr <= btsr(0) & BT(1) when rising_edge(clk); -- Einsynchronisierung taster_old <= taster_deb when rising_edge(clk); -- für Flankenerkennung : : --Entprellen process begin wait until rising_edge(clk); if btsr(1)= taster_deb then debcnt <= 0; else debcnt
-
Thread
Lichtschranke an Atmega. Ich versteh's nicht.
Hallo, Ich leide, wenn ich das Dauerthema "Entprellen" immer wieder lesen muss. Vorschlag: Der Taster soll keinen Interrupt auslösen, sondern wird periodisch abgefragt. z.B. Timerinterrupt alle 1 ms. 1. In der ISR soll bei gedrückter Taste eine
Wo kommt jetzt der Taster her? War der bei Maria Cron mit dabei?
-
Thread
Single-puls 10us
Wieso? Passt alles dran. Aber nötig ist es wohl eher nicht. Nur ein Taster und der 10µs Ausgang genügt anscheinend.
pegel schrieb im Beitrag #6262329: > Nur ein Taster und der 10µs Ausgang genügt anscheinend. Jetzt noch, warts ab. ;)
-
Thread
LED mit Interrupt umschalten
umschalten. Aber das geht nicht. Doch, das geht schon, aber man muss es richtig machen. 1. Ein Taster ist als Interrupt-Quelle ungeeignet. Bei jedem Tastendruck sendet der 3 oder 4 (oder 10) Interrupts, weil er prellt. Daß Taster nicht per (flankengetriggertem) Interrupt ausgewertet werden dürfen,
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
Hallo Ich spiele ein wenig mit dem leidigen Thema Entprellen von Taster, herum. Da gibt es den genialen Beitrag https://www.mikrocontroller.net/articles/Entprellung Meine Frage, gibt es eine, Function für den Arduino 328p wo ich den Taster über Interrupt
Ich würde ja vorschlagen den Taster extern zu entprellen, wenn er durch einen Interrupt ausgewertet werden soll, aber wie ich vor kurzem im Beitrag: https://www.mikrocontroller.net/topic/495399#6254600 lernen durfte machen das
-
Thread
GPIO entstören - Serienwiderstand benötigt?
~300ms, ein Delay von 500ms sorgt daher unweigerlich für Ärger. Ich hab auch schon eingetretene Taster gesehen.
Peter D. schrieb: >> Mechanische Kontakte liest man grundsätzlich über eine (ordentliche) >> Entprell-Lib ein. Diese filtert kurze Störungen heraus... > ..und machen die ganze Sache lahm. Mechanische Taster /sind/ lahm. Wir reden da von Entprellzeiten im Bereich um und knapp unter 100ms. Und das
-
Thread
Debounce-Entity und Architecture in Zusammenhang mit Sate-Machine nutzen
ausschaltet. Ich wollte zum Spaß den Debounce-Code von Lothar Miller nutzen um den Schiebeschalter zu entprellen. Mir ist klar, dass es sicher deutlich einfacher geht, aber ich würde gerne mal prototypenhaft eine andere Entity und Architecture in der Haupt-Architecture nutzen. Die LED leuchtet zwar,
#6242575: > Die LED leuchtet zwar, aber deutlich schwächer als sonst Und zwar nur, wenn du die Taste drückst? Das wäre ganz einfach erklärbar, man sieht es in einer Simulation sicher schnell, wie der bei gedrückter Taste ständig zwischen den Zuständen hin- und herspringt. Noch ein Wort zum überflüssigen
-
Thread
Steuereinheit eines Dartautomaten
" werden nun noch ein paar Dinge softwaremäßig abgefangen: a) Tasten oder entsprechende Kontakte können Prellen. --> Man muss also eine Entprell-Routine haben b) Es können quasi Zeitgleich auch mehrere Tasten gedrückt sein (oder eine Taste ist gedrückt, dann wird noch
-200 ms, damit so etwas nicht vorkommt. Bleibt ein Feld stecken verlangt der Automat dieses zu entprellen bevor es weiter geht.
-
Thread
ADC und DAC digital verbinden
>wenn man einen Taster betätigt >mit einem Computer (TTL Signal) oder einem Poti ändern. Das sind ein analoges und ein digitales Signal (und der Übernahmepuls ein digitales von einem Taster), welches hat Vorrang, können
Referenzspannung dafür geeignet ist. Man kann den DMA-Kanal aber auch weglassen und über einen I/O-Pin einen Taster anschließen, diesen von einer Debounce-Komponente im FPGA entprellen lassen und bei erkanntem Tastendruck dem DAC den neuen Ausgabewert zuschieben. So eine Aufgabenstellung erledigst Du mit dem
-
Thread
Touch Sensoren flackern und triggern ohne Annäherung
und auch momentan keine vorrätig... schätze ich werde von den Touch-Sensoren absehen und normale Taster einbauen da ich mir nicht sicher bin ob ich dieses Problem lösen kann. Leider scheine ich der einzige mit dem Problem zu sein oder keiner nutzt diese Sensoren... vielleicht auch aus gutem Grund.
> früh auslösen. Das muß nichts bedeuten. Es gibt viele mangelhafte und einige zuverlässige Entprell-Libs. Fataler Weise verbreiten sich die mangelhaften im Web wie Unkraut. Robert K. schrieb im Beitrag #6229054: > Ein altes Netzteil dient für die 230V auf 12V Erzeugung. Schaltnetzteile können
-
Thread
Debounce-Makro von Peter Dannegger - MSP430
verstehen... Ja, eben. Zuerst wirst du frech und dann kommt heraus, daß du die Logik hinter dem Entprellen von Tasten nicht verstehst - UND daß du dies auch mit der größten Selbstverständlichkeit der Welt sagst ohne dich zu schämen. Das Entprellen von Tasten ist doch wirklich kein unendlich schwer
sein müssen, hängt von deinem Polling-Intervall ab. Für das schiere Entprellen reichen 20..30 ms aus, das macht bei 10 ms Polling-Intervall einen Startwert von 2..3. Die Werte für's Repetieren rechnest du dir selber aus. So. jetzt solltest du das Entprellen von Tasten verstanden
-
Thread
Entprellen Flankenerkennung
habe schon einige alte Beiträge zu diesem thema gelesen. bin Anfänger wie sich sicherlich versteht. Das kritische scheint zu sein: Die Entprellung geschieht dabei durch die ganze Laufzeit des Programms. für kurze Laufzeiten benötigt man evtl ein delay, bei langen laufzeiten wird ein Drücken verschluckt. Es war aber für mich persönlich die am einfachsten zu verstehende routine, zumal ich kein AVR habe und es mich überfordert, die anderen routinen auf meine Plattform anzupassen. Was würdet ihr mir empfehlen?
-
Thread
ESP8266 mit PCF8574 und Taster - Interrupt vom PCF "spinnt"?
formuliert. Ich versuche es nochmal: Frage 1: Welchen Zweck haben die Kondensatoren an den Taster-Eingängen? a) Schutz gegen Radiowellen b) Kontakt entprellen c) ________________________ (bitte ausfüllen) Frage 2: Wie lange wechselt dein Interrupt-Signal nach Betätigung des Tasters wild
F. schrieb im Beitrag #6229074: > Frage 1: > > Welchen Zweck haben die Kondensatoren an den Taster-Eingängen? > > a) Schutz gegen Radiowellen > b) Kontakt entprellen Schutz und Entstörung langer Leitungen. Stefan ⛄ F. schrieb im Beitrag #6229074: > Frage 2: > > Wie lange wechselt dein
-
Thread
hardwarenah, objektorientiert programmiert
using namespace Combie::Pin; using namespace Combie::Timer; using namespace Combie::Millis; TasterGND<2> schalter; // zwischen Pin und GND(invertierend) OutputPin<3> absaugung; OutputPin<4> maschine; EntprellTimer entprell { 20_ms}; // Schalter entprellen RisingEdgeTimer ton {500
eine Frage der Prioritäten. > Aus dem Lotus-Land gibt es auch Rückenschonenderes > > EntprellTimer entprell { 20_ms}; // Schalter entprellen > RisingEdgeTimer ton {500_ms}; // steigende Flanke wird > FallingEdgeTimer toff { 3_sec}; // abfallende Flanke wird > Ja, userdefined
-
Thread
Pin Change Interrupt oder Pin pollen?
Mainschleife je nach Auslastung mal früher oder später gepollt wird... Ist es ein mechnischer Taster, kommt noch das Entprellen dazu... ein Timerintervall mit der geeigneten Abtastrate ist ein adäquater Weg dahin, da die Mainschleife i.d.R. viel zu kurze Intervalle besitzt. Zeit verplempern durch
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).
-
Thread
Klick zähler (Bluetooth)
möglichst viel abzuschalten. Beim oben verlinkten Nordic würde das Event Rising/Falling Edge am Taster direkt den Counter inkrementieren. Dann braucht noch nicht Mal die CPU wach sein. Taster müsste man dann in Hardware entprellen. Bluetooth würde ich nur auf Anforderung an machen. Also entweder die
bluetoe Damit wäre das relativ einfach implementiert (das komplizierteste dürfte dann noch das Entprellen der Taste sein). Da alle BLE Microcontroller auf niedrigen Energieverbrauch optimiert sind, kann es auch reichen, die Anzahl der Tasten-Betätigungen im RAM zu speichern.
-
Thread
Entprellen (kein AVR) Gesperrt
verplempert und außerdem von einer bestimmten CPU Geschwindigkeit ausgeht. Jedes mal, wenn man eine Taste drückt, wird das Hauptprogramm solange angehalten, wie die Kontakte prellen. Je älter die Taster werden, umso länger wird das dauern. Wenn man Tasten entprellen muss, dann fragt man sie in regelmäßigen
using namespace Combie::Pin; using namespace Combie::Timer; using namespace Combie::Millis; TasterGND<2> S1; // Taster zwischen Pin und GND(invertierend) OutputPin<3> OUT1; EntprellTimer entprell { 20_ms}; // Schalter entprellen RisingEdgeTimer ton { 3_sec}; // steigende Flanke
-
Thread
kein definiertes Verhalten in der ISR
Taster per Interrupt abfragen? Nö! lukker schrieb im Beitrag #6217069: [c] __interrupt void P2_ISR() { Entprell(); [/c] Irgendwelche Funktionen (die womöglich auch noch auf irgendwas warten
STK500-Besitzer schrieb im Beitrag #6217104: > Taster per Interrupt abfragen? Nö! > > lukker schrieb: __interrupt void P2_ISR() > { > Entprell(); > Hab ich auch gleich gedacht. Entprellen in einer Interrupt-Funktion? Da würde ich doch lieber
-
Thread
DCF77-Modul - Timing stimmt nicht
weglassen und über den Komparatoreingang mit 1,1V vergleichen. Den Kondensator auch und in Software entprellen (Mehrfachabtastung).
Monitor > usw.). Meine Erfahrung ist, dass wenn das Signal derartig gestört ist, hilft auch kein Entprellen mehr. Das Modul prellt nicht wie ein Taster.
-
Thread
Auswertung Drehencoder?
Gegenteil in der Interupt-Fraktion. Fakt ist: zum exakten Funktionieren gehört ein ebenso exaktes Entprellen - egal wie man das anstellt. Die Polling-Fraktion setzt auf digitales Entprellen durch Überabtastung usw. - und die Interrupt-Fraktion setzt auf analoges Entprellen per RC-Schaltung. Das eine erfordert
Quasi-Takt und das > andere als Quasi-Richtung auszuwählen und zumindest den "Takt" sauber zu > entprellen. Nein. Man muss gar nicht entprellen. Du hast also was Grundsätzliches grundsätzlich nicht verstanden. Wer nicht entprellen muss, muss sich auch keine Gedanken über die mögliche Prellzeit
-
Thread
Ansteuerung eines Schrittmotors mit 2 Endschaltern
} zustand=WARTE_AUF_TASTER; void loop() { myStepper.run(); switch(zustand) { case WARTE_AUF_TASTER: if(digitalRead(2)) // Taster heruntergedrückt { digitalWrite(2,HIGH); // Relais einschalten
einer Taste bleibt die andere getrennt und der internal Pullup gewinnt ;) 'sid
-
Thread
QTOUCH ohne ASF (C Sourcecode)
dem STK500. Als Sensorflächen wurden 2 der 2-poligen Kabel angeschlossen. Gesteuert wird mit den Tasten ein Lauflicht an PORTD. Funktion: Zwischen den Wandlungen wird die S&H-Stufe auf 0V entladen. Der Touchpin wird auf VCC geladen und vor der Wandlung hochohmig geschaltet. Die S&H-Stufe entlädt
Die weitere Verarbeitung erfolgt dann in gewohnter Weise durch meine Entprell-Lib. Die 10ms werden durch einen Zähler im ADC-Interrupt erzeugt. Die Routine erfolgt über den ADC-Interrupt im Hintergrund. Die Mainloop wird also nicht ausgebremst. Hier der ADC-Code: [c] ISR
-
Thread
Relais soll erst nach 5 sek. taster druck schalten wie?
Ich stehe aufm schlauch... Ich habe eine Leitung welche 5V hat, kurze taster signale auf GND schaltet eine led als beispiel ein, gesteuert von einem microcontroller, jetzt möchte ich, dass wen ich den taster mind. 5 sek.lang drücke, damit ein wechsler relais schalten kann
, wie wäre es mal mit Zustands Diagrammen Andreas schrieb im Beitrag #6144149: > wen ich den taster mind. 5 sek.lang drücke woher weiss eine externe Schaltung das du den Taster 5s drückst? Kommen da mehr LED Impulse? Ist der Taster irgendwie erreichbar? Kann das Tastersignal abgegriffen werden
-
Thread
Probleme mit externen Interrupts am ATmega328P
mit Polling oder du musst mit Hardware den Taster entprellen lassen.
&= ~_BV(INT0); } [/c] und der trigger steht auf LEVEL. Abfrage in der Timer-ISR ist bei Tasten über I2C-Portexpander natürlich etwas blöde, je nachdem was sonst noch am I²C hängt. Da würde ich das auslesen/entprellen in die main-loop packen, und mit dem Timer nur eine Zeitbasis dafür bereitstellen
-
Thread
ATmega328p bleibt ohne Programmer stehen
} } } uint8_t checkKey(){ if(PINB != 0x0F){ _delay_ms(60); //entprellen if(PINB != 0x0F){ while(PINB != 0x0F){ //warten bis taste losgelassen PORTD &= ~(1<<PD0); //Kontroll-LED an } PORTD |= (1<<PD0)
irgendwas zu haben das ich auf den µC schreiben kann. Meine LED hing schon an PD7 und für den Taster war ich zu faul die Pins zu zählen, daher hab ich den ganzen Port genommen :D
-
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
Nummerneingabe SwitchCase AVR
Telefonnummer. Ich wollte es mit Switch Case Funktionen realisieren. Hierbei sollte INT1 als ENTER Taste dienen und nach der Zahlenauswahl über die PCINT Tasten das weiterspringen ermöglichen. Leider klappt es nicht, so wie gewollt. Den Quelltext hab ich als PDF angehängt... hoffe das ist ok. Ich
Mit den PCINT- Tasten zählt die Variable z1... zn durch und wird auf dem LCD ausgegeben. Wenn die Zahl gewählt wurde, soll mit Enter INT 1 die nächste Zahl angesprungen werden um wieder mit den PCINT- Tasten die Zahl
-
Thread
Richtige Flip Flop Schaltung gesucht
Schaltung,aber welche genau? Z.B. ist das CD4013 ein flankengetrioggertes D-FlipFlop. Dein RESET-Taster mit pull down kommt an R, so weit so klar, entprellen nicht nötig. D kommt an VDD. Und dein SET-Taster mit pulldown kommt an CLK, entprellen ausnahmesweise nicht nötig. (S an Masse). Die LED an
Michael B. schrieb im Beitrag #6123977: > Und dein SET-Taster mit pulldown kommt an CLK, entprellen ausnahmesweise > nicht nötig. Doch, schon: wenn Set gedrückt bleibt während Reset kommt, kann es beim anschließenden Loslassen der Settaste zum Prellen kommen
-
Thread
Button EXTI nicht zuverlässig STM32
natürlich auch sein, dass über eine solche Schutzdiode die Vcc des gesamten Controllers bei unbetätigter Taste auf unerlaubte 4,7V angehoben wird (weil der Taster nämlich eigentlich gar kein Taster ist, sondern irgendeine elektronische Schaltung, die locker 20mA ausgeben kann...). Larry schrieb im Beitrag
schrieb im Beitrag #6115048: > Ist das so wie ich es mache nicht eigentlich in Ordnung? Nein. Tasten entprellen und Flanke erkennen macht man im Timerinterrupt. Externe Interrupts nimmt man nur, um alle möglichen Störungen einzufangen, bzw. für wirklich eilige Sachen (µs-Bereich).
-
Thread
Schwierigkeiten mit dem UART AtTiny2313A
< UCSZ1) ; while (1) { if ( !(PORTB & (1 << PORTB0))) // Taster Da? { Prellen = 0; while (Prellen < Prellzeit) // Entprellen { if ((PORTB & (1 << PORTB0))) { Prellen++; } else
den Code so kurz wie nur irgendwie möglich und schmeisst alles unnötige raus... Irgendwelche Taster auf Prellen abfragen kann man später, wenn überhaupt - hat sowieso nichts mit deinem Problem zu tun, kann aber sehr wohl selbst Probleme verursachen. Ich habe gerade keinen 2313 zur Hand aber
-
Thread
kleines Arduino Projekt - soweit alles okay?
einen KY-040. An den Anschlüssen für A und B habe ich 10nF Kerkos und 10 kOhm Widerstände zum entprellen vorgesehen. -> Habe ich hier etwas vergessen bzw. habt ihr hierfür irgendwelche Tipps?
Unbenutzte Anschlüsse am MUX vermeiden. Am Taster fehlt ein Pullup.
-
Thread
Moduswechsel durch gleichzeitiges Drücken beider Taster
biscchen genauer ausführen? > bin mir nicht ganz sicher was du meinst Es gibt 1000 Wege zum entprellen von mechanischen Kontakten. Ich verwende folgende Lösung: * für jeden Taster gibt es eine Variable (Byte reicht meist) * alle 50-100ms wird über einen Timer-Interupt eine ISR angesprungen *
Jens P. schrieb im Beitrag #6102242: > Es gibt 1000 Wege zum entprellen von mechanischen Kontakten. Ich > verwende folgende Lösung: > > * für jeden Taster gibt es eine Variable (Byte reicht meist) > * alle 50-100ms wird über einen Timer-Interupt eine ISR angesprungen