-
Thread
Softwareentprellung funktioniert nicht
Hallo Ich versuche einen Tastersoftwareseitig zu entprellen: [c] ISR(INT1_vect) { //Interrupts deaktivieren wegen Prellen cli(); long_delay(750); //Taster immer noch gedrückt? if ((~PIND) & 0x8) { //stuff } //Interrupts
Patrick Liedtke schrieb im Beitrag #2902143: > Und klar ist delay mein Ernst, zum Testen ob das Entprellen funktioniert > geht das viel einfacher. Später hatte ich vor einen Timer zu benutzen. Und was bringt dir dann der Test, wenn du eh danach alles ganz anders machst. Immer dieselbe Leier. Tasten
-
Thread
Gibt es Prellfreie Taster bzw Schalt-Ic´s mit Tasterauswertung
Ausgeschaltet werden (wohl mit einem D-Flipflop). Jetzt habe ich schon die Suche und Google bemüht nach Tastern, die fehlerfrei arbeiten (in Hinsicht auf Digitale Technik) also nicht prellen und zwar vom Werk aus. Ich möchte nicht zusätzliche Bauteile in die Schaltung integrieren um den Taster zu entprellen
!!!! Fast 7 Euro ist das normal bei ICs??? Der hat aber auch gleich 6 x Kontakt-Entpreller, was den Preis gegenüber den Tastern wieder relativiert, richtig? Oder braucht man neben dem IC und 6 Stk ganz normalen Miniaturtastern noch etwas um Prellfrei zu tasten? Ach ja die Stromversorgung
-
Thread
Denkfehler? UART + Delay danach
Jetzt wollte ich nur noch eine _delay_ms(200) Funktion beifügen um den Tastendruck ein wenig zu entprellen. Also so habe ich mir das vorgestellt -> Taste wird gedrückt -> 1x "C0" senden -> 1x Kanal senden -> Warteschleife beginnen -> Taster wird losgelassen -> warteschleife hört auf. Jetzt kommt
gerade nicht?! Aber es klappt nun. Ich habe in meinem Programm noch vorher logische Abfragen über die Taster gemacht (bevor es in die While ging um zu entprellen...). Den ganzen klatsch habe ich weggelassen und dann mal wirklich meinen Code auf das "Grundgerüst" optimiert, so wie ich ihn gepostet habe. Ich
-
Thread
Taster zum Schreiben ins Eeprom entprellen ?
@Andreas: Das EEPrombeschreiben dauert so lange, das kann man fast schon als Entprellen bezeichnen :-) "Normale" Taster prellen <25ms. Das heisst du erkennst die wechselnde Flanke (wenn z.B. über Interrupt ausgelöst), dann wartest du die 25ms (oder mehr) und erst dann führst du das
Das mit dem EEPromschreiben als Entprellen war ja nicht ganz so ernst gemeint... und wenn man auch schön die Flanken der Tastendrücke (und nicht die Pegel) auswertet dann darf man ja lt. Datenblatt mind. 100.000x die Taste drücken. Das dauert
-
Thread
Drehgeber auslesen
Hallo, bin echt beeindruckt von dieser Routine. Es funktioniert super. Wie würdet ihr den Taster des Inkrementalgebers mit einbinden? Auch in der ISR vom Timer? Wie würdet ihr den am besten Entprellen? [c] ISR (TIMER0_COMPA_vect) // 1ms for manual movement { int8_t neu;
Marcel schrieb im Beitrag #5013541: > Wie > würdet ihr den Taster des Inkrementalgebers mit einbinden? Auch in der > ISR vom Timer? Wie würdet ihr den am besten Entprellen? Ich würde dafür Peters Entprellroutine benutzen und diese ebenfalls in der Timer-ISR aufrufen
-
Thread
Leds mit gleichen Taster durchschalten
&=~(1<<TasterCnt); // Led aus TasterCnt += 1; if (TasterCnt > 5) TasterCnt = 3; PORTB |= (1<<TasterCnt); // Led an } }// Ende while Schleife [
Hi Was ist denn so schnell, das man taster mit Interrupts einlesen muss? Was ist so kompliziert, das ein Delay von 50 ms für ein Entprellen von Eingängen Probleme macht? Natürlich sind Timer irgendwann einmal nützlich oder gar wichtig, doch
-
Thread
Taster-Matrix, wie entprellen?
ganz klar geworden, wie ich dabei meine Taster entprellen kann. Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte.
redest, ist schon Multiplexing. > Nur ist mir noch nicht ganz klar geworden, wie ich dabei meine Taster > entprellen kann. Wäre nett, wenn mir da jemand auf die Sprünge helfen > könnte. Eine vorgegebene Zeit die Tasten nicht mehr abfragen. Normalerweise sind es 10-30ms. Du kannst aber auch mit
-
Thread
Entprellen von 4 Taster
Hallo Komme nicht weiter, nachdem die unten angehängte Entprell-Routine gute Dienste leistet. Da ich 4 Taster habe, habe ich sie im Moment 4-mal in meinem Listing. Ich suche eine Möglichkeit, diesselbe Routine für jeder der vier Tasten zu benützen, und trotzdem
Jeweils Bit.tastex und Bit.tastex_status x=0,1,2,3) Vielen Dank für die Ideen Toni //-------Entprell-Routine für Taste 0 >>set AL -------------------- if ( bit_is_clear(PIND,PIND0) ) //Taste 0 gedrückt { if (Bit.taste0)//war Pin-Pegel zuvor 1?==>also nicht gedrückt ! {
-
Thread
Relais entprellen
was heißt für dich entprellen?
kaum Leistung drüber. Das ganze ist eine Relaisplatine für das NetIO und ich möchte mit ein Paar Tastern die Eingänge vom µC ansteuern.
-
Thread
Binär-Uhr hoffentlich finale Schaltung
Samuel K. schrieb im Beitrag #2538457: > 1 Takt fürs einlesen ohne Entprellen oder 12 Takte mit entprellen bei > 30Hz Refresh @1Mhz: Ein Taster prellt doch typischerweise ca 20-30ms. Wie komme ich da mit 12 Takten hin? Oder werde ich früher oder später auf solche kniffe
Oder werde ich früher oder später auf solche kniffe beim > Programmieren kommen, dass ich das entprellen im Hintergrund laufen > lassen kann? Entprellen macht man zyklisch. Die Taste wird zyklisch abgefragt. Wenn sie 4 mal hintereinander gedrückt war gilt das als gedrückt. Im Forum gibts es genügend
-
Thread
[AVR-ATmega8] LCD-Menü mit 2 Tastern
0b00010000)==0) besser if ( !(PINB & (1<<PB5)) ) { } verwenden .. zudem must du die taster entprellen entweder di fertigen routiene hier ausm forum verwenden oder selbst was bauen nach schema F if ( taste ) { _warte 20ms(); // solange taste gedrückt ist hier däumchen
& (1<<FREQ_DEC)))//1.Taste+2.Taste { rit=1;freq++;; do{ verzoegerung(); }while (!(DREH_TASTER_PIN & (1<<FREQ_DEC))&!(DREH_TASTER_PIN & (1<<FREQ_DEC))); vy73 de DL!YAR
-
Thread
myAVR mk2 mit nur einem Taster bedienen - assembler
bis zum Ende durchlaufen wenn du nach einem Step nicht wenigstens auf das loslassen der Taste wartest oder eine Pause machst, aber am besten die Taste ordentlich per Software entprellst. Sascha
schwierig zu verstehen, aber das solltest Du Dir reinziehen. http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof Da gibt noch ein paar Tips vom Experten, die Du Dir wirklich angewöhnen solltest, auch immer schön fleißig Kommentare verwenden sowie Labels, das macht die Programme viel
-
Thread
Taster als Schalter
bau dir ein bistalbiles flipflop auf oder kauf dir ein fertiges, vergiss nicht, den taster noch zu entprellen
mit BASCOM, meine aber, dass es so nicht funktioniert, denn ich vermisse das "Zauberwort" zum Entprellen der Taste(n). Da du (@Usel) ja mit BASCOM "arbeitest", wirst du das auch leicht in der BASCOM-Hilfe finden. ...
-
Thread
PLL per Software
Hi RDS Anfänger, wie entprellst du denn immer deine Tasten, einfach per Waitms oder benutzt du den Debounce Befehl?
Fabian Wolf wrote: > Hi RDS Anfänger, > > wie entprellst du denn immer deine Tasten, einfach per Waitms oder > benutzt du den Debounce Befehl? Beides ist Quark. Taster entprellt man im Hintergrund mittels Timer-Interrupt. Da ist Entprellung und Flankenerkennung
-
Thread
Mehrere Dinge mit dem uC erledigen
beschaltet ist. Besser wäre ein periodisches Abfragen (Pollen) im Timer > Interrupt, da kann man auch entprellen. Entprellen koennte man auch im Interrupt. Und bei sicherheitskritischen Aufgaben wird auch das LCD so lange warten koennen. Stellt sich aber die generelle Frage ob das sinnvoll waere einen Not-Aus-Taster zu entprellen. Ausreichend kleiner Pull-Up-Widerstand und gut is. Volker
-
Thread
Tasten per Software entprellen
und button_pushed bloss ein char machen, man nutzt eh nur 1 bit. Der Code kann allerdings auch 8 Taster gemeinsam entprellen. > Sobald man einen Tastendruck erkennt (Pin auf LOW) gilt diese als > gedrückt. Danach setzt man das lesen weiterer Tastendrücke für 50-100ms > aus sodass praktische jede
Mit nem timerinterrupt die Taster Pollen....das reicht völlig aus.
-
Thread
Suche: geräuschlose Taster
. Es müssen quasi sekundengenau Dinge >abgefahren werden, da hält man normal den Finger auf dem Taster und >drückt im richtigen Moment. Das kann man per Software entprellen und/oder über die Gestaltung des Hochpasses / der Ansteuerfrequenz der Leuchtdiode exakt anpassen. Ich habe solche Tasten mit
Travel Rec. wrote: > Das kann man per Software entprellen und/oder über die Gestaltung des > Hochpasses / der Ansteuerfrequenz der Leuchtdiode exakt anpassen. Ich > habe solche Tasten mit Reflexkoppler selbst jahrelang an einer Sync-Box > gehabt.
-
Thread
Entprelle nicht !?
... oder wenn Du den gleichen Taster auch noch an einer anderen Stelle im Programm abfragst. Es kommt dann auf den Programmablauf an, ob es Ärger gibt. Deshalb würde ich Taster grundsätzlich entprellen. Peter Dannegger hat hier mal eine genial kompakte Routine zum Entprellen von bis zu 8 Tastern eingestellt, die solltest Du Deinem Programm und Deinen Nerven gönnen. ;-) Gruß, Frank
-
Thread
Verständnisfrage zur einer Debounce-Routine
mehr als ich benötige. Ich habe nur einen Taster, welchen ich entprellen möchte. Außerdem befinde ich mich noch am Anfang und würde das auch gerne nutzen, um selbst nachzudenken und dabei vielleicht etwas lernen ;). Mit freundlichen Grüßen, Unlucky2012
bewährt hat, sind Peter Danneggers > "Bulletproof"-Entprellroutinen. Wie gesagt: Halte ich für das Entprellen von nur einem Taster fast für ein wenig Overkill. Vor allem, weil ich keine Doppel-Belegung (kurz/lang) und auch keine Wiederholfunktionen brauche. Außerdem habe ich bloß ein einzigen Taster und
-
Thread
Taster als Schalter
relevante Sequenz anhand der Kommentare sehr gut zu identifizieren. Sehr wichtig ist auch das Entprellen der Tasten "im Vorbeigehen", also ohne das Programm anzuhalten oder mittels Warteschleifen auszubremsen (wie auch vorgeschlagen wurde). Wer sich einmal den Programmierstil mit Warteschleifen angewöhnt
nicht, was du von diesem Forum erwartest. Fakt ist nunmal, dass die Aufgabenstellung (mittels Taster am AVR ausgangsbits toggeln) nicht so einfach zu realisieren ist. Man muss dazu: - Pin abfragen - Entprellen - Einschaltflanke des (entprellten) Tasters erkennen - Ausgangspin toggeln Und
-
Thread
Mein erstes Programm.funktioniert nicht
Den If befehl kenne ich schon von NetLogo. Aus der Anleitung für das Entprellen von Tastern werde ich allerdings nicht ganz schlau...
Beitrag #2959589: > Den If befehl kenne ich schon von NetLogo. Aus der Anleitung für das > Entprellen von Tastern werde ich allerdings nicht ganz schlau... Mach erstmal was wo das entprellen nicht notwendig ist. Also: Schalter gedrückt -> LED an Schalter nicht gedrückt -> LED aus Das
-
Thread
Griffheizungssteuerung mit Atmega 328p (Arduino)
Leistungsaufnahme von gut 2 Ampere Über die Taster kann ich die Soll Temp einstellen welche eigentlich in 5° schritten erfolgen sollte allerdingst weiss ich nicht wo ich im Quellcode die Taster entprellen kann die ist und Solltemp wird mir derzeit
Taste gedrückt else // Interrupt auf LOW, Taste wurde losgelassen { // Prüfen ob sie lange genug gedrückt war if (millis()-Minus_pressed_time>EntprellZeitMillis) { if (SollTemperatur
-
Thread
ATmega8 - allgemeine Frage
Apropos Entprellcode: Ursprünglich hatte ich eigentlich die Absicht, die Tasten elektronisch mit einer Art Monoflop zu entprellen .... was haltet Ihr davon? (Hintergrundgedanke: ich bin wie gesagt keine Programmierer, aber von "diskreter" Elektronik versteh ich ein bisserl was
Beitrag #3480118: > Apropos Entprellcode: > > Ursprünglich hatte ich eigentlich die Absicht, die Tasten elektronisch > mit einer Art Monoflop zu entprellen .... was haltet Ihr davon? nicht viel. Tasten an einen(!) Port. Timer aufsetzen (braucht man meistens sowieso, zb für eine Uhr), in die ISR
-
Thread
Universelle Tastenabfrage nach PeDa in AVR Assembler
save_sreg reti [/avrasm] Ach, Quelle orginal Code : http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#41627 Bernd_Stein
Auch sehr interessant, falls man nur 4 Taster benötigt und auch zusätzlich eine losgelassen-Funktion haben will. Manchmal möchte man ja etwas erst starten lassen, wenn der Taster logelassen wird. https://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof
-
Thread
Frage zu einer IF-Bedingung
einfach, da sind es nur 2-3 > Zeilen. Beispiel? > Kann mir jemand mal bitte helfen. Eine Taste per Software entprellen ist so schwer ja nun auch nicht. Primitiver Ansatz: Die Taste einfach mit einem Delay, der laenger ist als die Prellzeit aber kuerzer als die kuerzeste Drueckzeit, 2 mal abfragen
zeig uns doch mal den C-Code zu obigem Beispiel. Dann hast du eigentlich schon deine Funktion um Taster zu entprellen, oder nicht?
-
Thread
Mit analogen Taster/Schalter 6 Ausgänge nach einander anschalten
alles zu reseten. Doch jetzt hab ich das Problem das der IC das grobmotorige Signal von meinem Taster ja nicht mag, ich weis entprellte Schalter bzw. das Signal entprellen. ich möchte aber meine Schaltung so klein wie möglich halten und keine 2 oder sogar 3 IC's verwenden. Im Endeffekt soll es
Beitrag #3519574: > Doch jetzt hab ich das Problem das der IC das grobmotorige Signal von > meinem Taster ja nicht mag, ich weis entprellte Schalter bzw. das Signal > entprellen. Entprellen geht recht einfach mit einem RC-Glied, da brauchts Du nicht unbedingt einen NE555 dazu: Vcc - R1 + C - GND
-
Thread
Taster am ISR-PIN entprellen
Guten Tag zusammen, Ich habe einen Taster an einem Interupt-PIN und wenn ich diesen Taster Drücke, löse ich einen Interupt aus, und das Programm springt in die ISR. Aber wie entprelle ich dies? Wenn ich den Taster ohne Interupt nutze geht das mit debounce. Aber wie mache ich es, wenn ich den Taster als Interupt nutzen möchte? Gruß und Danke Snatch
-
Thread
Drehencoder mit AVR will nicht so wie ich gern will
mich mit dem Link den ich gepostet hab beschäftigt der ist in C das versteh ich besser ^^. Entprellen eines Tasters steht im Tutorial sogar in Assembler ! http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
eine ASM-Routine verlinkt, die von anderen Leuten auf C und Bascom umgeschrieben wurde. > > Entprellen eines Tasters steht im Tutorial sogar in Assembler ! > http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten Ja sicher, ich benutze (und verstehe) Peter Danneggers Entprellroutine aber
-
Thread
taster auf 2 arten abfragen
moin ! ich habe 8 taster an dem port d angeschlossen diese taster möchte ich auf zwei verschiedene methoden auslesen: 1. normal ob er gedrücktist (entprellen) 2. ob er für mind. 3 sekunden gedrückt ist. ich hab schon
beenden und zu main zurückkehren ja: dann kommt eine switch anweisung die herausfindet WELCHER der taster gedrückt ist Case t1 Case t2 Case t3 Case t4 ... ... In jeder sieser case blöcke steht jetzt: eine kleine schleife zum entprellen die 65025 zyklen nachschaut ob der jeweilige taster gedrückt
-
Thread
Langer Tastendruck in RB_ISR (PIC CCS-Compiler)
. Das Taste-gedrückt-Bit bleibt solange gesetzt, bis die Auswertung es zurücksetzt. Man kann außerdem durch die Trennung von Entprellen/Drückdauererkennung und Auswertung in Untermenüs den Tasten sehr leicht
meinte das mit dem zyklischen Abfragen so, dass ich den µC nicht jedesmal aufwecken will wenn ich die Tasten abfrage. Das entprellen mache ich ja auch mit einem Timerinterrupt. Olaf
-
Thread
Einschaltverzögerung in C
hi, zum tasten entprellen haben sich schon viele schlaue Köpfe gedanken gemacht -> bulletproof -> boardsuche schönen Abend noch und gn8
Mathias Obetzhauser wrote: > Die Verzögerung soll zum Entprellen von Tastern dienen. Wenn Der Taster oh mann... und da bist du nicht auf die idee gekommen, dass du nicht der erste mensch auf erden sein könntest, der sich vor diesem problem sieht und bist nicht
-
Thread
Kann diese Tasterschaltung sein?
und das auch noch je Taster, also 16 unnötige Bauteile für 8 Taster. In der Zeit hab ich längst die Entprell-Lib per Drag&Drop dem Build hinzugefügt und damit 8 Tasten auf einen Schlag abgehandelt, Zusatzfunktionen (lang/kurz
kann jeder lesen, wie er lustig ist. Natürlich ist es selten sinnvoll, die Ereignisbits der Entprell-Lib für einen Pin auszuwerten, an dem gar keine Taste hängt und der vielleicht ADC-Input, PWM-Output oder sonstwas ist. Die Ereignisbits werden eben für alle Portpins bereitgestellt, weil das kein
-
Thread
2 leds mit einem taster an einem 7474? ich verzweifel..
Hi, lass die Finger von dem FlipFlop. Du müsstest sonst auch noch den Taster entprellen usw.! Wozu das ? Nimm ein Bistabiles Relais oder Eltako... Gruß THaala
Beitrag #1882518: > Die 7400 (UiA U1B) ist ein Cross-Coupled Nand. Dies ist zur Entprellung > der Taste unbedingt erforderlich. (siehe Switch debouncing) Klaus, dann solltest Du Dir die Schaltung nochmal anschauen! Das Original (z.B. http://www.loetstelle.net/praxis/entprellen/entprellen.php) braucht
-
Thread
Drehimpulsgeber
Hi >Externes entprellen mit 2 RC Gliedern hilft. Wie lange? MfG Spess
Beide Terminals mit 10kOhm/100nF RC-Glied entprellen, dann kommen vernünftige Impulse heraus.
-
Thread
Zuweisung Taster
Hallo Ich möchte mit define einem Taster eine kurzen Namen zuordnen: [c] if (taster1) // if (!(taster1)) { // tu was } [/c] Zuornung des Taster erfolgt damit: [c] #define taster1 PORTA &= ~(1<<PINA1) // PA1 ein [/
oder 0xFF ist. Wie auch zu erkennen ist: man muss sowohl beim Drücken als auch beim Loslassen der Taste entprellen. Peter macht es im Prinzip nicht anders, nur sehr geschickt programmiert und er kann gleichzeitig vier (oder acht?) Tastenpins einlesen und kann noch unterscheiden zwischen lang und
-
Thread
Werft mal ein Auge bitte drauf
Ich hab jetzt Vier Taster: Taster Taster Taster Taster Links, Rechts, Oben, Unten Welchen Widerstand bräuchte ich denn für die Sensoren?
Dominik H. schrieb: > Ich hab jetzt Vier Taster: > > > > Taster > > Taster Taster > > Taster > > > Links, Rechts, Oben, Unten > > > Welchen Widerstand bräuchte ich denn für die Sensoren? Kommt
-
Thread
Bedeutung von "Entprellen"
Kann mir jemand bitte erklaeren was "Entprellen" bedeutet. Vielen Dank im Voraus!
die hier üblichen Entprellroutinen von Peter Dannegger für effizienter. Die Entprellung für eine Taste benötigt für Variablen gerade mal ein halbes Byte (4 Bit), die Entprellung für 8 Tasten eines Ports benötigt nur 4 Bytes Variablen (insgesamt) und 13 ASM-Befehle in der Timer-ISR und dauert auf dem
-
Thread
[Tiny 13] LED on/off schaltung | Interrupt | Anfängerproblem
auf den Taster; dein µC registriert aber 2 bis 4 Schaltvorgänge, weil Taster nun mal keine idealen mechanischen Bauteile sind.
PORTB = on; //oder kurz: PORTB = on ^= 0x01; _delay_ms(100);//Entprellen wie Vorposter beschrieben hat, //es gibt aber bessere Methoden } } return 0; } [/c] Wenn ich jetzt jedoch den taster drücke Blinkt die LED. Warum?
-
Thread
viele Eingänge als Taster abfragen ohne Pollen
Spalte (=high) suchen. Fertig. Beim Loslassen eigentlich das gleiche, jeweils ca. 50ms zum Entprellen. Hier gibt es kein N-Key-Rollover, ist nur Ein-Tasten-Eingabe. Ich setze dann ein Flag, daß eine Taste neu gedrückt wurde und speichere die Taste ab, soll sich die Hauptroutine um den Rest kümmern
zu sein, die Tasten erstmal per Hardware entprellen. Ansonsten könnte es nämlich sein, daß beim Aktivieren der Nebelmaschine der Controller meint, es wäre eine Taste gedrückt worden. Löte also parallel zu den Tastern
-
Thread
Pin Interrupt löst Reset aus
--------- //Interrupt Service Rputine des Timers 2A ISR (TIMER2_COMPA_vect) { //Start des Entprell Zählers if( TASTER_GEDRUECKT() ) { tasten_zeit++; printf("tasten_zeit: %d \r", tasten_zeit); } else tasten_zeit = 0; //Tastenmodus 2 setzen (Taster lange
--------- //Interrupt Service Rputine des Timers 2A ISR (TIMER2_COMPA_vect) { //Start des Entprell Zählers if( TASTER_GEDRUECKT() ) { tasten_zeit++; printf("tasten_zeit: %d \r", tasten_zeit); } else tasten_zeit = 0; //Tastenmodus 2 setzen (Taster lange
-
Thread
Erkennung von Prellenden Schaltern
nicht geändert werden. Genauso wie es eine vorgabe ist mit den 10µs. Es sind Schalter und keine Taster.
Entpreller schrieb im Beitrag #4101388: > Genauso wie es eine vorgabe ist mit den 10µs. Die 10 µs glaubt hier doch Keiner!
-
Thread
Mehrere Taster / wenige Inputs
wie hoch die Spannung ist und erhältst Rückschlüsse auf die Taster? Und da man keinen Interrupt nutzt entfehlt das entprellen der Taster. wenn du ein sehr kleines Programm nutzen solltes reicht zb ein delay von 10-50ms zum entprellen oft aus.
sein. DAVID B. schrieb im Beitrag #5861272: > Und da man keinen Interrupt nutzt entfehlt das entprellen der Taster. Natürlich muß man auch die Tasten am ADC entprellen. Hier mal ein Beispiel: https://www.mikrocontroller.net/topic/64731#517001
-
Thread
AVR Einstieg / Probleme mit Programm Interrupt
einen schönen code zu geschrieben den hier fast alle benutzen. http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#914340 Und hier hat sich mal jemand mit der Erklärung versucht: http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#1082536 Gruß Steffen
Situation überhaupt eintreffen könnte. Ich hoffe dass es Dir einwenig weiterhelfen wird. Das Thema "Tasten entprellen" lässt sich auf unterschiedliche Arten lösen. Es kommt immer auf den Anspruch und der Verhältnismäßigkeit an. Die beste Lösung ist, dem IRQ-PIN kein Prellen anzubieten. Aufwändig mit FlipFlop
-
Thread
Taster-Interrupt Fragen
der Interrupts von rund 10ms erzeugt. In der Interruptroutine wertest Du den PCx-Eingang aus und entprellst ihn. Ist die Taste hinreichend lang gedrückt gewesen (50-100ms) schreibst Du in eine globale Variable (volatile uint8_t taste) den Wert 1. Das läuft im Hintergrund ab. Zum gewünschten Zeitpunkt
. Diese Rechnung einfach nur angewandt macht leider nicht die >//preload for 10ms . Naja, das Tasten entprellen wird auch noch so ein Spaß für sich ;-) Wenn ich beim Lesen doch bloß nicht so Begriffstutzig wäre, sorry. Ich will nur nicht die echt gut gemachten Tuts und Codes einfach so nehmen.
-
Thread
Was mache ich mit den Bitoperatoren falsch!?
hat sich was verändert if( TasterLinksNeu == 0 ) { // der Taster wurde gedrückt .... } TasterLinksAlt = TasterLinksNeu; } // Taster "Rechts" auswerten if( TasterRechtsNeu != TasterRechtsAlt
besser auch entprellen oder!? Die steigende Flanke könnte ich mit dem angepassten Skript für Active-high Taster ermitteln, wobei es sicher sehr ineffizient ist beide Routinen parallel arbeiten zu haben. Auch wegen dem
-
Thread
Tastenentprellen während externen Interrupt - ATmega16
Hi Abgesehen von einer Interruptverarbeitung für einen einfachen Taster verstehe ich nicht, wieso das Entprellen eines Tasters den µC blockieren soll. Also, Signal kommt und wird in ein Flag geschrieben. Dann einfach einen Zähler setzen, der im Timer heruntergezählt wird
Ich habe gemerkt, daß es deutlich zuverlässiger ist, auch das Loslassen zu entprellen. Muskeln werden nicht statisch gesteuert, sondern mit Nervenimpulsen, d.h. die Drückkraft schwankt ständig leicht, auch ohne Parkinson. Auch kann sich bei älteren Tastern eine Oxydschicht auf