-
Thread
Sekundenanzeige 7 Segment (Digitaluhr ohne µC)
Chris schrieb im Beitrag #5120506: > Ok, das mit dem Taster entprellen verstehe ich. Das müsste ich mit dem > Arduino der hier neben mir liegt realisieren Komisch... Früher hat man sowas mit einem Kondensator und einem Widerstand und ggf einem Schmitt-Trigger
Chris schrieb im Beitrag #5120506: > Ok, das mit dem Taster entprellen verstehe ich. In meiner Anfangszeit habe ich Taster mit Umschaltkontakt und ein RS-FlipFlop verwendet, etwa so: https://www.elektronik-kompendium.de/sites/dig/0210223.htm Da siehst
-
Thread
While Schleife wird erst beim zweiten Mal ausgeführt?
so aus. [c] #include <CombiePin.h> #include <CombieTimer.h> #include <CombieTools.h> using Taster = Combie::Pin::InvInputPin<2>; // Taster gegen GND geschaltet using Led = Combie::Pin::OutputPin<13>; Combie::Timer::EntprellTimer entprellen(20); // ms Combie::Tools::ToggleSwitch flippflop ; // void setup() { Taster{}.initPullup(); Led{}.init(); } void loop() { Led{} = flippflop = entprellen = Taster{}; } [/c] Wenn bedarf an den Libs besteht, rücke ich sie auch wohl raus, sollten sich aber auch
-
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
Mediacenter mit Atmega 32
Impuls, 18ms Pause --> Servo ganz links Also Zeitgleich 4 Servos ansteuern und 1 Oled und 8 Taster und Uart. Das ist spielend mit einem Mega32 machbar. 20ms Servointervall --> 50Hz. Update des Displays auch irgendwas bei 50Hz nicht zu oft, sonst wirkt es zu unruhig. Tasten entprellen in Software
. Schau mal in der Codesammlung nach "Tasten entprellen - Bulletproof" von Peter Dannegger. Ist ein schönes Beispiel.
-
Thread
Entprellen für Anfänger (frage)
, immoment programmiere ich einen Atmel mega 8 auf einem selbstgebauten Board. Da ich gern Taster verwenden möchte, habe ich mich in das Thema entprellen eingearbeitet und mir nun den Code von Peter Dannegger runtergeladen. "Entprellen für Anfänger". Der Code funktioniert gut und das "prell
aus. Man braucht ja einen definierten Pegel, wenn der Taster nicht gedrückt ist und dazu schaltet man den internen Pullup ein. Drückt man den Taster, muß der Pegel wechseln, d.h. der Taster muß gegen GND schalten. Du hast warscheinlich den Taster gegen VCC
-
Thread
kanalweiterschaltung per taster
An Pin 15 kommt nun also dein Taster dran, aber man muß ihn entprellen damit es wirklich nur 1 Licht weiterschaltet. Am einfachsten geht das bei einem Taster mit Umschaltkontakt und den beiden nun übrigen Gattern des 4001 die bisher
Auch mit einem NE555 kann man Taster entprellen, in dem er als MonoFlop geschaltet wird (dazu gibt es 2 Schaltungsweisen, beide geeignet, siehe Datenblatt), aber dazu muss man aufmerksam sein und lesen was man zu erlernen hat. Mit
-
Thread
Frage zu einer Ampelschaltung mit Interrupt
aber nun verhindern das das bit erneut gesetzt wird? > lässt sich der interupttaster genauso entprellen wie ein normaler > taster? Wie Du merkst, raufen sich hier alle Programmierer die Haare über den Ansatz. Aber es würde zu weit führen, alles von Anfang an richtig zu machen. Wenn Dein Lehrer
wenn eine ISR knapp vor dem fertig werden ist. :-) > lässt sich der interupttaster genauso entprellen wie ein normaler > taster? Der ganze Ansatz mit Auslösung durch Taster am Interrupt und Abarbeitung der Ampelphasen in einer ISR ist kompletter Schwachsinn. > oder muss ich in cli befehl nach
-
Thread
hoch- UND runterzählen
Nein. Die TImer zählen nur hoch. >Habe bisher nur Lösungen gefunden, bei denen ich über die 2 Taster eine >Variable verändere. Das ist auch die vernünftigste und sicherste Lösung. Stichwort Entprellen. >Prinzipiell auch eine Lösung, mit dem Timer wäre es >mir aber lieber. Warum?
TIMER0 auch abwärts zählen lassen. >>Habe bisher nur Lösungen gefunden, bei denen ich über die 2 Taster eine >>Variable verändere. > > Das ist auch die vernünftigste und sicherste Lösung. Stichwort > Entprellen. Zustimmung. Jan Huber schrieb im Beitrag #2847836: > Ich könnte eine Variable
-
Thread
AD-Wandlung Tastenentprellen
0b00000000; break; } } while (1); return(0); } [/c] Ich gebe die gedrückte Taste an eine 7-Segmentanzeige aus. Solange ich die Taste drücke wird ja auch das richtige angezeigt, aber sobald ich die Taste loslasse oder nur andrücke wird mir alles angezeigt nur nicht der Tastenwert.Deshalb
gesagt nicht ganz verstanden, deshalb ja nochmal meine Anfrage im Forum. Ist es auch möglich die Tasten ohne Interrupt zu entprellen?
-
Thread
Harley Davidson Blink Mikrocontroller
vorher der Schalter. Selbstverständlich wird der Schalter vorher entprellt, dass beim Drücken der Taste nicht 3-5 mal das Relais an und wieder ausgeschalten wird. Gesamtfunktion ist dann: Linke Taste drücken und loslassen: Blinker links an Linke Taste erneut drücken: Blinker links wieder aus Rechts
Sag blos, du bist immer noch nicht fertig? http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
-
Thread
switch(Funktion()) möglich?
; else LED_ALLE_OFF; switch(Entprell_PB1()) // Selbshaltung, 1-Impuls=ON, 2-Impuls=gelöscht=OFF { case 1: PB1_high=1; break; // Taster/Schalter=ON case 2: PB1_high=0; break; // Taster/Schalter=OFF } if(PB1_high
letztens folgenden Ausdruck verfasst: [c] void loop() { led = blinkomat = flankenerkennung = entprellen = taster; } [/c] Gab auch witzige Kommentare....
-
Thread
Debounce - LED leuchten lassen
Hallo Leute! Ich habe aus dem AVR-GCC-Tutorial die Entprell-Routine genommen und mir ein Programm geschrieben, welches folgendes bezwecken soll: Ich habe einen ATTiny25 in Verwendung, an dem 3 Taster angeschlossen werden sollen. Wenn Taster 0 gedrückt
oder wirklich gut funktioniert. Das Tutorial schreiben ja auch nur Menschen. Gerade beim Entprellen wird sehr viel Murks gemacht, weil der Programmierer es nicht verstanden hat und es auch nicht merkt, solange die Tasten neu sind. Erst der Kunde merkt es mit der Zeit, wenn die Tasten ermüden und
-
Thread
Entprellung via Hardware
) das Auslesen der > Tasterzustände in relativ langen Abständen (so 50-100ms). Das gibt dann Tasten wie in manchen Fahrstühlen, wo meist die Beschriftung "Bitte Taste lange drücken" fehlt, sonst bekommt die Steuerung nix mit ;-(
also witzig sieht die Schaltung ja aus, 4 Ausgänge für das entprellen eines Wechsel-Taster/Schalter. Und dann auchnoch RS-FF selbst gebastelt, sau geil =D was macht ihr mit den 4 Ausgängen? Wo habt ihr die Schaltung zum Entprellen her? Ich kenn nur die Variante
-
Thread
Fehlsignale bei Stop-Uhr
Induktivitäten (Relais, Hupe) mit Freilaufdiode ausstatten. - Schalter > Tastendruck per Programm entprellen. z.B. Ist es sehr wahrscheinlich das im Laufe der Zeit deine Tasten noch mehr prellen werden als jetzt. Un es ist sehr unwahrscheinlich, dass kurz (<1s) nach dem Start ein (sinnvolles) Stop kommt
ist, wenn es länger als die Prellzeit ohne Prellen anliegt. z.B. 1. Starte einen Zähler wenn Taste = 1 2. Lösche den Zähler wenn Taste = 0 3. Signal ist nur gültig wenn Zähler > Ent-Prellzeit
-
Thread
Auslesen von 48 Tastern mit AVR
und nun kommt es auf die Tasten an ob man 6 oder 3 Tasten boards baut.
> Viel Spaß beim schreiben der Entprellroutine ... > > Beim Matrixdesign sind es aktuell 3,5 Tasten pro Pin. > Bei 100 Tasten in einer 10x10 Matrix wären es 5 Tasten pro Pin. > (Oder 5 Pins weniger) > Dein Vorschlag lohnt sich also wirklich gar nicht. Das Entprellen ist hier mal überhaupt kein
-
Thread
Cm in Inch per Tastendruck auf LCD Display
. Da kann man dann gleich den Taster entprellen und wenn der Taster sicher gedrückt wurde, umschalten
die Anzeige auf inch springen und nach dem loslassen wieder cm, oder soll jeder Druck auf den Taster umschalten zwischen cm und ich und cm ? Für letzteres brauchst du ein flag (bool'sche Variable des Zustandes) und musst die Taste entprellen. Fur ersteres braucht es nur ein if.
-
Thread
Power on/off
Guten Tag, ich bin gerade dabei eine Schaltung zu entwickeln die folgendes tun soll: Taster gedrückt (kurzer Impuls) VIN = VOUT Verbraucher an. Taster noch mal gedrückt (kurzer Impuls) Vout = ca. 0V Verbraucher aus. Da die Schaltung Akkubetrieben ist sollte bei Off so wenig wie möglich
> Am besten macht man so etwas mit einem T-Flipflop, z.B. aus der > 4000-Serie. Aber wie entprellen?
-
Thread
Inkrementgeber
Leitung - Kabelverbindungen machen im Fehlerfall gern mal einen Kurzschluß zum Gehäuse. Wenn der Taster Vcc durchschalten würde, gäbe das dann einen satten Kurzschluß der Versorgung
Beitrag #6420751: > Doe Kondensatoren würd ich persönlich rausnehmen und vernünftig in > Software entprellen. Da muss man nichts entprellen. Gray-Code ist von sich aus immun gegen Prellen.
-
Thread
Flipflopfragerei
wenn ich den Taster wieder loslasse, dann ist ja kein Kontakt mehr vorhanden, dann würde ja folglich das S in der Luft hängen? Und genauso einen Aufbau mit R über einen Taster. Oder darf ich dann keine Taster verwenden
Wenn ich doch jetzt z.B. eine >Spannungsquelle habe mit +5Volt, dann schalte ich in Reihe +5V - Taster >- S vom Flipflop - Fast. Was macht der Eingang, wenn der Taster NICHT gedrückt ist? Aha! Er hängt in der Luft. Was kann man tun? 1.) Wechseltaster nutzen. Taster nicht gedrück, mit Masse verbunden
-
Thread
Problem mit Taster Variable
Das ist vermutlich genau das, was du suchst: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/taster_entprellen/
Interrupt lässt du z.B. auf LOW reagieren, ziehst den Pin mit einem Wiederstand auf HIGH, während der Taster den auf GND zieht. Das ist ein Taster, der wird mehrere Interrupts auslösen, du wirst einen kleinen Kondensator zum entprellen brauchen. Die Pins für die LEDs konfigurierst du als Ausgänge. Schematisch
-
Thread
QRP Transeiver: Drehgeber nachrüsten.
Wenn man die beiden Taster anzapfen kann, sollte es irgendwie möglich sein, eine Schaltung parallel zu schalten. Zuerst wäre interessant, ob die Taster einfach nach GND schalten oder in einer Matrix abgefragt werden. Dann kann
Frank E. schrieb im Beitrag #6828478: > das Entprellen der Drehgeber-Kontakte ist dann noch eine > Herausforderung. Willst du schon wieder einen Thread über das Entprellen von Gray-Code Signalen anzetteln? Dazu gibt es hier im Forum schon mehr
-
Thread
Lauflicht mit LPC1769
if(taste3() == 0) { for(i = 0; i<= 70000;i++){} // Entprellen do{ }while(taste3() == 0); for(i = 0; i<= 70000;i++){} break; } } } }
(taste3() == 0) { for(i = 0; i<= 70000;i++){} // Entprellen do{ }while(taste3() == 0); for(i = 0; i<= 70000;i++){} break; } } } }
-
Thread
PIC18F2550 hängt sich nach längerer Dauer auf
Schaltplan ????? Vielleicht Taster entprellen. Könnte helfen. Ohne Schaltplan, nur ein Gerate hier.
>Es geht nicht darum irgendwelche Taster zu entprellen. Es geht einfach >darum dass, wenn ich einen Taster drücke, und der Nebentaster irgendwie >auch kurz eine Verbindung hat("scheinbar" gedrückt wurde) Hast du den Taster mechanisch
-
Thread
Einfaches Programm tut nicht das was es soll..
Ausserdem musst du deinen Taster entprellen. Sonst triggert dir das Prellen ständig den 2.ten Tastendruck
wenn das alles im Simulator funktioniert, in der Realität aber nicht, dann solltest du über das entprellen der Taste nachdenken. Oliver
-
Thread
C++ auf einem MC, wie geht das?
aussehen? Besonders interessant wäre die Entprellung portweise parallel und nur das Auswerten der Tasten einzeln. Also irgendwie, jede Taste ist Teil der Klasse entprelle_port, die wiederum für mehre 8Bit-Ports verwendet werden kann. Z.B. 16 Tasten an 2 Ports.
Port, weil sowas eine nebeneffektfreie Aktion ist. Wo siehst du da bloß einen Ansatzpunkt, um Tasten per C++ zu entprellen? W.S.
-
Thread
Schalterentprellung Software Frage
zum 2. Status machen muss also bis "Taster wird gehalten" und kann dann den definitiven Zustand schon übergeben? Und wie mache ich das wenn ich auf einmal einen ganzen Schalterport entprellen mmöchte? MfG Metzgerei Pirmin & Söhne
das hier hat sich bewährt: http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof Ich sehe keinen Grund mehr, eine 1001.te Version auch nur anzuschauen.
-
Thread
Schaltung spinnt nach Einbau in Gehäuse (PP-Rohr)
Beitrag #5588219: > sondern interpretiert dann ein Tastendruck anscheinend als > zwei, als wäre der Taster nicht entprellt Exakt so isses, ein Delay ist eben noch lange kein Entprellen. Du nimmst zum Einlesen den externen Interrupt und das ist der Fehler. Wenn Du nach dem Delay den Interrupt wieder
Hi, ich würde gerne mal wissen wie denn die tasten gedrückt werden, wenn die Schaltung im Rohr steckt. Sprich: Wie und wo gehen denn die Taster nach "außen"?
-
Thread
Millis in while-Schleife
schleifenexit1 = 1; schleifenexit2 = 1; } tastereingabe(); //Entprellen: Der Code bis zur Einschreiben im Array befindet sich in dem Millis-IF-Statement. Danach gibt die Variable Schritt zur Gleichheitsprüfung weiter. if (Taster0 == 1 || Taster1 == 1 || Taster2
einzutippen werden ungültig schleifenexit2 = 0; //Eingabe tastereingabe(); //Entprellen: Der Code bis zur Einschreiben im Array befindet sich in dem Millis-IF-Statement. Danach gibt die Variable Schritt zur Gleichheitsprüfung weiter. if (Taster0 == 1 || Taster1 == 1 || Taster2
-
Thread
Mit Impuls schalten
auch hier wieder eine genau anleitung http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#.28Tasten-.29Entprellung
an ein Servo aussieht. Das sollte doch perfekt sein für einen uC. Muss ich da eigentlich noch entprellen?
-
Thread
AVR TTiny 461 Pullup nicht aktiv?
dat = dat & 15; PORTA = dat * 16 & 0xF0; } _delay_ms(40); // Taste entprellen loop_until_bit_is_set (PINB, S1); // Warte bis die Taste S1 nicht mehr gedrückt wird _delay_ms(40); // Taste entprellen } if (!(PINB & (1<<S2))
{ addr = addr + 1; prog = 0; } _delay_ms(40); // Taste entprellen loop_until_bit_is_set (PINB, S2); // Warte bis die Taste S2 nicht mehr gedrückt wird _delay_ms(40); // Taste entprellen } } while(!prog == 0
-
Thread
74LS109 Toggelt nicht
Ronald B. schrieb im Beitrag #7413162: > Ich entprelle ganz klassisch mit einem Widerstand und Kondensator Danach MUSS ein Schmitt-Trigger-Eingang dran, sonst prellt es sogar wenn der Taster nicht prellt :-)
den Strom über den Taster: https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1
-
Thread
Steigende Flanke abfragen mit Atmega8515
zur Situation: Ich möchte mit einem Atmega8515 ein Befehl einmal ausführen lassen wenn ein Taster betätigt wird und dann soll er nichts mehr machen bis der Taster erneut betätigt wird. P.S. Ich habe 4 solche Taster. mein Problem: Der folgende Code der den Befehl uart_putc pro Tastendruck
Er führt den Befehl auch aus wenn der Taster über lange Zeit gedrückt bleibt.
-
Thread
Sinnloses MOSFET-Sterben
Also, hier der Verbesserungsvorschlag. Als erstes entprellst du deinen Taster. z.B. 100 Ohm in Serie und 100nF nach GND. Dahinter ein Schmitt-Trigger, um das jetzt sehr lahme Tastersignal zu einer ordentlichen Flanke zu machen. Oder uC mit Software-Entprellung
> Selbst schwache > elektrostatische Entladungen können einen dicken MOSFET killen. D.h. - Taster entprellen & Schmitt Trigger verwenden - Mosfet-Treiber verwenden - Anderen Mosfet verwenden (IRL3705N?) - Suppressordiode am Gate Ich werde das demnächst mal durchtesten. VG
-
Thread
Per Taster Umschalten, FlipFlop?
Und Entprellen des Tasters nicht vergessen, sonst sind das Flip-Flop und Du unterschiedlicher Auffassung, wie oft Du den Taster gedrückt hast. T-Flip-Flop ist die korrekte Antwort. Man kann durch Beschaltung
und per Verbindung von D mit /Q zum T-Flipflop umfunktionieren. Bei Verwendung von mechanischen Tastern muß man diese aber unbedingt entprellen. Ein Flipflop (egal welcher Technologie) schaltet problems im µs Takt hin und her. Es "zählt" also die Prellimpulse und es ist vollkommen dem Zufall überlassen
-
Thread
delay Funktion mit IRS ersetzen
das Genick brechen. Die kann niemals was sinnvolles tun. Vermutlich willst Du eine oder mehrere Taste(n) entprellen und das macht man komplett im Timerinterrupt. Die Mainloop fragt dann nur nur die Flags ab, die die ISR setzt.
klarkomme, sind solche Dinge: [pre] void loop() { PORTD = counter = flankenerkennung = entprellen = taster; } [/pre] Das ist der Grund, mir mal die Quellen der Libs zu ziehen und mir das mal anzusehen. Achso: weitermachen! Gruß, 73 Äxl, DG1RTO
-
Thread
Frage zu Entprellung gemäß Timer-Verfahren (nach Peter Dannegger)
(sinnvollerweise) aufgerufen werden? - Wenn ich es richtig verstehe, gilt die Taste dann als gedrückt, wenn bei vier Aufrufen der ISR (*in Folge*) der Zustand der Taste abweichend vom jeweils vorherigen Aufruf ist und die Taste aktuell gedrückt ist? Wie "zuverlässig" ist das? Wenn
eine Zeit in diesem Bereich aus, die dir genehm ist. > - Wenn ich es richtig verstehe, gilt die Taste dann als gedrückt, wenn > bei vier Aufrufen der ISR (in Folge) der Zustand der Taste abweichend > vom jeweils vorherigen Aufruf ist nicht vom 'jeweils vorhergehenden Aufruf'. Die Taste gilt als
-
Thread
Merken das Taster 1-Signal hat
das unnötige Init noch nicht mal das flackern verursacht, aber wie hier schon erwähnt das nicht entprellen des Taster hierfür verantwortlich sein könnte. Beides zusammen ist natürlich doppelt verdächtig für das Problem
unnötige Init noch nicht mal das > flackern verursacht, aber wie hier schon erwähnt das nicht entprellen > des Taster hierfür verantwortlich sein könnte. Nö. Du kannst den immer gleichen Text am LCD so oft übereinander malen wie du willst. Da flackert nichts. Flackern entsteht erst, wenn sich die
-
Thread
Programablauf durch Taster nur Sporatisch
lichtModus; lichtModus++; // Lichtmodus +1 delay(10); // 10ms warten zum Entprellen } } else { gedrueckt = false; // losgelassen } delay(20); // entprellzeit für Taster //+++++++++++++++ LEUCHTPROGRAMME +++++++++++++++++ // Modus 0 = Licht
lichtModus; lichtModus++; // Lichtmodus +1 delay(100); // 10ms warten zum Entprellen } } else { gedrueckt = false; // losgelassen } delay(20); // entprellzeit für Taster //+++++++++++++++ LEUCHTPROGRAMME +++++++++++++++++ // Modus 0 = Licht
-
Thread
Programm bleibt stehen
0; st_8=0; } void prog (void) { while(foo==0) { if(!(PINC & (1<<0))) // Abfrage Taster +Minute { ++min; if(min>59) { min=0; } _delay_ms(2); while(foo2==0) { if(PINC & (1<<0)) // Taster entprellen { ++foo2; _delay_ms(2); } } foo2=0; } if(!(PINC & (1<<1))) // Abfrage Taster +Stunde { ++st; if(st>=24) { st=0; } _delay_ms(2); while(foo2==0) { if(PINC & (1<<1)) // Taster entprellen { ++foo2; _delay_ms
-
Thread
120 I/Os an Raspberry Pi
Schaltschrank aus und werden mittels Stromstoßrelais (12 V) geschaltet. Derzeit werden diese von diversen Tastern und Bewegungsmeldern angesteuert. Gibt es eine sinnvolle Möglichkeit diese rund *50 Relais* und *70 Taster* mit dem Raspberry zu verbinden? z.B. per USB I/O-Expander oder per I²C? Ich habe
Ausfallsicherheit ist natürlich schlechter. Das ist ganz klar. Wenn du aber die Taster mit dem RasPi abfrägst kannst du Szenen programmieren - so in Richtung EIB-KNX. Auch eine eine nette Spielerei wäre z.B. Dimmung über einen Taster - taste kurz an/aus länger dimmen
-
Thread
Seltsames FPGA Verhalten beim Systemstart
mal noch eine Frage: Spricht eigentlich, wenn man eine bestimmte Zeit abwarten möchte (z.B. beim Entprellen von Tasten) etwas gegen das wait for xxx statement? Oder sollte man da stattdessen auf Zähler setzen?
dem Takt) ? > Spricht eigentlich, wenn man eine bestimmte Zeit abwarten möchte > (z.B. beim Entprellen von Tasten) etwas gegen das wait for xxx statement? Gegen "wait for 1ms" spricht nur, dass es nicht in Hardware umsetzbar ist. Simulieren kannst du das schon... :-/
-
Thread
Timer, Interrupt, Taster, C
fehlendes volatile bei stunden, minuten und sekunden wurde ja schon > angemerkt. > > 3) die Taster sind nicht entprellt. Die Taster entprelle ich mal wenn ich zeit habe. Bis es so weit ist muss ich ohne klarkommen. durch das delay fällt es nicht so sehr auf. > 4) wenn es dann mal funktioniert
Sebastian schrieb im Beitrag #4839503: > Die Taster entprelle ich mal wenn ich zeit habe. Bis es so weit ist muss > ich ohne klarkommen. durch das delay fällt es nicht so sehr auf. Dauert doch nicht lange?