-
Thread
Störung auf Eingang eliminieren Software?
gerd schrieb im Beitrag #1907045: > Kann man hierfür eine Entprell Routine nehmen oder wie würdet ihr das > anstellen? Ja natürlich. Eine ordentliche Entprellroutine filtert auch Störungen raus. Ich nehme sie für Tasten, Relaiskontakte oder bei langen Leitungen
fehlt nur noch der Link: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten Volker
-
Thread
Matrix 3x7 Auswerten / AtMega 8515
Hallo, Ich habe hier ein 7x3 Tasten-Matrix die ich gerne über meinen AtMega auswerten lassen will. Das Prinzip der Tasten-Matrix ist mir klar, die 7 Zeilen mit je 3 Tasten sind über 10K an VCC verbunden und sitzen an PC0-7 Die
Routine am einfachsten sein? Stimmt, ein Timerinterrupt ist dafür der übliche Weg, da man ja noch entprellen will. Peter
-
Thread
Frequenzmessung mit Timer0 ohne ICP
entsprechenden Port-Pin aus. Oder vielleicht die COM1B1:0 Bits in TCCR1A. Das Konzept mit den Tastern funktioniert nicht. Vergiss doch einfach mal das mit den entprell_Taster. Bei Taste1 und Taste2 hast du ja eh schon Pausen eingefügt, so dass sich die Entprellung erübrigt. Füg doch einfach bei den andern beiden Tasten auch noch Pausen ein. Wobei so etwa 100 oder 200 Millisekunden reichen. Die 4 und 8 Sekunden bei den ersten beiden Tastern sind wohl etwas übertrieben. Das Hauptprogramm musst du ja sowieso noch
-
Thread
[PIC] 18F46K20 A/D Wandler Problem
ADC_CH5 & ADC_INT_OFF, 15 ); while(1) { // Nur ausführen wenn Taster gedrückt wird. if( PORTDbits.RD0 == 0 ) { SetChanADC( ADC_CH5 ); Delay10TCYx( 5 ); ConvertADC(); while( BusyADC() ); // Warten bis A/D Wandler fertig ist.
// Neue Zeile while( BusyUSART() ); while( PORTDbits.RD0 == 0); // Erst weiter wenn Taste Losgelassen wird. Delay10TCYx( 5 ); // Entprellen PORTDbits.RD7 ^= 1; } } // Programmende } [/c] BG Andreas
-
Thread
TASTER mit AT90CAN128
zu entprellen. Wie mache ich das?
welche Ports bei dme genannten Controller GPIO sind? Und gibt es vielleicht Beispiele zu dem Thema Taster entprellen? Danke
-
Thread
Entprellen Taster
gemeint. > > Was gibts da anzupassen? Weil man eine Universalroutine hat, die man * an die Tasten-Port-Belegung anpassen kann * Autorepeat wahlweise auf Tasten drauflegen bzw. wegnehmen kann * In den Entprell-zeiten anpassen kann > Oder gibst du nach 5 Jahren ein Softwareupdate > raus, weil
#1896413: > http://www.mikrocontroller.net/articles/Entprellun... > > "Peter Dannegger hat in "Entprellen für Anfänger" folgende vereinfachtes > Entprellverfahren beschrieben. Das Makro arbeitet in der Originalversion > mit active low geschalteten Tastern, kann aber einfach für *active > high* geschaltete
-
Thread
KIM-1 in AVR?
habe ich blaue LED Anzeigen geordert. Sieht sicher stylish aus wenn es erst mal läuft. Die Print Taster aus dem eBay kann man oben prima beschriften. Der single step Schalter bekommt eine LED, die direkt am Taster raus guckt. Der Taster bekommt eine Schalter Funktion durch die AVR Firmware.
verwendet, der Platinenaufbau würde aber PinChange-Interrupts verlangen. Problem eins ist das Entprellen bei diesen Leitungen, außerdem würde der PCI beim Drücken und auch beim Loslassen der Taste auslösen. Das Entprellen könnte man vielleicht lösen, indem die entsprechenden Leitungen per PWM nur mit
-
Thread
LCD Uhr mit Alarmfunktion mit Drehencoder in BASCOM (Ein kleines Projekt für BASCOM Änfänger Vol3)
behandeln incr misek 'Millisekunden erhöhen if misek >19 then misek=0 ... 'Tasten entprellen incr ms20 '20ms-Einheiten erhöhen if ms20>49 then ms20=0 set merker.0 'LCD-Ausgabe anmelden incr sekunde 'Sekunde erhöhen, Überlauf wird in Mainloop behandelt
schöne ist, ich kann diesen Flag überall im Code benutzen. Debounce ist ein einfacher Befehl, um Tasten zu entprellen, den Timer zu nutzen, der ja sowieso im Hintergrund dudelt ist aber effektiver. Aber auch ich will Dich von deinen Vorhaben nicht abbringen. Wigbert
-
Thread
Tastenentpreller aus Tutorial - will nicht
Gibt es ein Entpreller, der die LED sofort einschaltet wenn ich den Taster drücke? als der code von oben funktioniert hat, hat er nur dann eingeschaltet, als ich den Taster losgelassen habe und dass nach nur bestimmten
ahh mein Fehler, da habe ich mich verschrieben. Taster ist richtig eingebaut, ich hab also den Taster mit 4 Pins.
-
Thread
wofür sind die ics?
hätte was ich draus machen kann würde ich ja nicht fragen? mit dem MMC4028 könnte ich z.b. mit 4 tastern 10 leds ansteuern hab jetzt nochn atmel218 (24c16 2-WireSerialEEPROM) gefunden
und spiel mit dem IC. Einzig, wenn irgendein Eingang Impulse haben will, dann solltest du einen Taster nahmen und den entprellen. Ein NAND mit Schmitt-Trigger ist zwar Overkill, aber wenn du schon eines hast: Damit ein Flip-Flip aufbauen, den Taster auf die Eingänge und schon hast du ein entprelltes
-
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
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
MSP 430 Launchpad TX, printfEasy
dann sind >die ersten 30 Zeichen nicht in Ordnung... Ich habe "Bauchschmerzen, weil: 1.) Du den Taster per IRQ abfrägst, ohne zu Entprellen. 2.) Du in der ISR das GIE-Bit erneut setzt und damit verschachtelte IRQs zulässt, was mit hoher Wahrscheinlichkeit zu unvorhergesehenen Effekten führen
Bernd N schrieb im Beitrag #1878543: > Ich glaub du verstehst mich falsch, ich will gar keinen Taster. Ich > möchte lediglich Daten am TX Pin so ausgeben das es funktioniert. Nun gut. Ich hatte verstanden, du willst TX'en, wenn der Taster gedrückt wird. *Dann* solltest Du den aber auch entprellen
-
Thread
LED blinken STK500
Anfänger gerne noch wissen, was ich am besten als nächstes ausprobieren kann bei der uC Programmierung. Taster und entprellen? Oder was eignet sich danach am besten? Vielen Dank im voraus
-
Thread
Einfache Pin Überprüfung
Danke für die Antwort, aber ich arbeite nicht mit einem Taster :D Das mit dem Entprellen finde ich interessant, aber ist hier wohl nicht nötig. Das Signal kommt von einem anderen avr über ein Flachbandkabel und sollte deshalb direkt schalten. Das würde
Laß erstmal den Unsinn mit dem floatenden Pin sein! Das ist verboten. Nimm nen Taster gegen GND und nen Pullup (z.B. 4,7k). Und dann erklär nochmal, was rauskommen soll und was anstelle passiert. Peter
-
Thread
Display-Menü programmieren
Rücksprungadresse { //LCD-Menü Deklarationen und Definitionen: show0(); do { if(EINGABE_TASTEN & (1<<RAUF_TASTE)) //Wenn auf Runtertaste gedrückt wir dann: { _delay_ms(20); //entprellen if(pos0 < 5) //POSITION wird nie überschritten pos0++; //zähle Position hoch } else if(EINGABE_TASTEN & (1<<RUNTER_TASTE)) //Wenn Runtertaste gedrückt wird dann: { _delay_ms(20); //entprellen if(pos0 > 0) //POSITION wird nie unterschritten pos0--; //zähle Position
-
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
Shutdown PIN schalten
>wärst du so nett und würdest mal nach FlipFlop googeln. Und am besten auch gleich noch nach "Taster entprellen".
es geht in diesem Thread aber NUR um Taster.
-
Thread
[Assembler] Simulation in AVRStudio geht, in anderem Programm nicht
Realität zählt es jeden Störimpuls. Schau Dir das mal an: http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#41625 http://www.mikrocontroller.net/attachment/1925/Get8keyb.asm MfG
hatte den Link auf die Bulletproof-Entprellung eingefügt: http://www.mikrocontroller.net/topic/tasten-entprellen-bulletproof#new und meine den ersten Beitrag des Threads. MfG
-
Thread
imt 901 - Schrittmotor
machmal verliert er einfach einen oder mehrer schritte. ich muß dazu sagen, daß ich den takt per taster vorgebe. ich wollte damit erstmal grundsätzlich testen ob es funktioniert. die frage ist, kommt es durch den taster oder habe ich etwas falsch angeschlossen? Zusätzlich würde ich noch gerne wissen,
Taster entprellen oder Taktgenerator nehmen - dann weist du's. Ansonsten: unsere Glaskugeln dringen nicht durch die Abschirmung deiner Werkstatt ;-)
-
Thread
Resetschaltung mit ICM7555
z.B. den Reset wenn er von einem Taster kommt entprellen und für eine Mindestdauer auf den Ausgang schalten.
-
Thread
Msp430 Tipps
immer weiter mit uC programmieren lernen macht echt Spaß:-) jetzt habe ich ein Code geschrieben Taster s1-->Led1 blinkt Taster up--->led2 blinkt Taster down ---> Led1 und 2 blinken gleichzeitig Taster left ---->Led1 und 2 blinken nacheinander (mit dem Entprellen ) Es funktioniert jetzt alles
P1DIR |= 0x01; P1DIR |= 0x02; //Init taster tasterDebounce = 1; TastersInit( Taster_ALLE ); TastersInterruptDisable( Taster_ALLE ); tasterPressed = 0; TastersInterruptEnable(Taster_S1 + Taster_S2 + Taster_UP + Taster_DOWN +
-
Thread
Tastenmatrix 3x4 mittels Interrupt abfragen?
! Das ist mir klar! > Beim aufwachen nach einem Interrupt mit PC4-PC7 > herausfinden, welches Taste es nun war. Und hier habe ich das Problem! Wie finde ich heraus, welche Taste nun gedrückt wurde?
KEY_PIN & 1<<0 ) // if pin 0 = low { col = 4; PORTD |= (1<<PD4); //Taste 1 } if( ~KEY_PIN & 1<<1 ) { col = 3; PORTD |= (1<<PD5); //Taste 4 } if( ~KEY_PIN & 1<<2 ) { col = 2; PORTD |= (1<<PD6); //Taste 7 } if( ~KEY_PIN &
-
Thread
Newbie-Fragen zum Programmcode (entplellen)
Sekundebruchteilen abgehandelt, danach wird wieder der Port abgefragt um eine neue Aktion zu starten. Wenn die Taste immer noch gedrückt ist, was wohl meist der Fall ist, würde diese Aktion erneut ausgeführt werden. Um dies zu vermeiden, wird dann in einer Schleife gewartet, bis die Taste wieder losgelassen wird
Ja, jede Taste braucht ihre eigene Variable für den alten Zustand. Deshalb mußte es auch als Macro geschrieben werden, als Inline-Funktion geht das nicht. Peter
-
Thread
Touch Entprellung für pollin dg 16080
man wieder woanders drückt zurückgesetzt werden, also keine Entprellung besitzen. Also normale tasten kann man ja mit der debounce Funktion aus dem Tut entprellen, wie macht man das dann mit solchen Toch-tasten?? Hier mal ein Codeausschnitt: [c] if((x > 10 && x < 30) && (y > 10 && y < 30)){
den Artikel [[Bitmanipulation]] durch, dort wird genau beschrieben wie das geht. Wenn Deine Touch-Tasten die Ausgänge toggeln sollen, verwendest Du die XOR-Verknüpfung, dann ändert der Ausgang bei jedem drücken auf Deinen 'Button' den Wert. Gruß Jürgen
-
Thread
Tasterschaltung in AVR
drückst. Drückst du, fährt die Fensterscheibe. Lässt du die Taste los, hört auch die Bewegung auf. Der andere Fall ist: Du drückst eine Taste und eine LED leuchtet auf. Du lässt die Taste los und nichts weiter passiert. Drückst du erneut auf die Taste so geht
los passiert nichts weiter. Der erste Fall ist der einfachere. Man muss dort auch nichts entprellen [C] int main() { .... while( 1 ) { if( !( PORTB & ( 1 << TASTER_PIN ) ) ) schalte LED ein else schalte LED aus } } [/C] hier steht klipp und klar:
-
Thread
Reaktion auf Tasterereignis in zeitlich unkritischem Programm
Anwendungen auch ne andere Methode nehmen könnte. Man sollte unnütze Arbeit ruhig vermeiden. Ob Entprellen, Flanke erkennen, Lang-/Kurzdruck, Repeat, 2 Tasten gleichzeitig ..., ich will mir da keinen Kopp machen müssen, ich rufe einfach die entsprechenden Funktionen auf und gut is. Peter
werde mich mal auf die Suche nach dem Beitrag begeben Im wesentlichen geht es darum, bei jedem Taster den C und den R auszubauen und eine kleine Modifikation zu machen, so dass die Taster gegen Masse schalten und nicht mehr gegen Vcc > Auf die Pullupwiderstände muss ich zugeben, habe ich nicht geachtet
-
Thread
Tastatur mit Interrupt
Und an das Entprellen der Tasten denken. Mechanische Kontakte prellen; deswegen verwendet man normalerweise keinen externen Interrupt für Taster (er würde mehrfach ausgelöst), sondern macht die Abfrage (und auch die
Nimm besser nen Tmerinterrupt, dann braucht man keine Dioden und das Entprellen fällt mit ab. Peter
-
Thread
Entprellung Ansatz so OK?
Hallo, es gibt von Jack Ganssle einen netten Artikel über Tastenprellen und -entprellen. Er hat einen Haufen gängiger Taster analysiert und zeigt das Prellverhalten - das einen manchmal sehr überrascht. Im folgenden gibt es einige Anregungen zum Entprellen in Software. Hier der Link
einen Tastendruck wartest und dann eine Aktion auslöst, sondern wenn du umgekehrt den Zustand der Tasten in regelmässigen Abständen (z.B. per Timer-Interrupt alle 50 Millisekunden oder in der Hauptschleife) einliest und je nach Zustand eine Aktion auslöst. Vorteil: 1. Der Taster muss nicht entprellt
-
Thread
AVR LED Lauflicht flexibel mit Pollin Platine (+Ampel ;-)
es dann aber leider nicht gefunden. Der Timer-Teil enthält Code-Schnipsel aus den Tutorials, der Tasten-Entprell-Teil ist ziemlich wörtlich bei P. Dannegger abgeschrieben und der Teil mit dem Lesen der Daten steht tatsächlich im Assembler-Handbuch von AVRStudio4, aber nicht so, dass ich ihn sofort umsetzen
-
Thread
Programm reagiert nicht auf Tasterdruck
und einer Rollosteuerung bei der das Rollo rauf/runter fährt solange die Taste gedrückt ist und stehen bleibt, wenn du die Taster wieder loslässt. Du willst ersteres, hast aber letzteres programmiert.
interrupt auslösen und die sind > leider schon belegt... Pssst. Man nimmt auch keine Interrupts für Tasten her. Das bringt mehr Ärger als es wert ist. Einzige Ausnahme: wenn man den µC mit einer Taste aus dem Tiefschlaf aufwecken muss.
-
Thread
Tasten ueber Schieberegister - EMV?
Hallo Leute, folgendes Problem: Ich habe mehrere Tasten ueber Schieberegister an einem Mikrocontroller angebunden. Leider bekomme ich manchmal "Geistertasten-Signale", obwohl nichts gedrueckt wurde. Situation im Ueberblick: *) 11 Tasten werden über
sind noch weitere Schieberegister dahinter, die funktionieren, SREG-Leitungen passen also *) Bei Tasten-Betaetigung wird direkt auf 5V gezogen *) Bei nicht betaetigten Tasten gibt es einen Pulldown von 15k auf GND *) 4-Layer Platine: Layer 1 - Tasten; Layer 2 - GND; Layer 3 - 5V; Layer 4 - SREG *)
-
Thread
impulszähler bauen
> Der Taster kann ja zu jedem beliebigen Zeitpunkt gedrückt werden. Ja, aber er wird verglichen mit dem Timerinterrupt sehr langsam gedrückt. Oder kannst du den Taster 500 mal pro Sekunde drücken und loslassen
RC-Glied: Der Reedkontakt soll Active-High geschaltet sein, R=22KOhm und C=1mikroF müssten zum Entprellen doch hinkommen?
-
Thread
LED Energie/Volume anzeige
welche auf Tastendruck eine Reihe LEDs nacheinander ein- bzw. ausschaltet. Sprich ich habe einen Taster A, der, solange er gedrückt gehalten wird, meine LEDs anschaltet und einen Taster B, der das ganze wieder nach einander auschaltet, das ganze inetwa im 2-5 Hz Takt. Beim loslassen sollen die LEDs in
Shift Left kommt GND um immer ein Low-Signal weiterzuschieben. - Und von S0 und S1 jeweils ein Taster auf Vcc, da, so wie ich das im Datasheet verstanden habe, ein High auf S0/Low auf S1 "Shift Right" bewirkt bzw umgekehrt. Demnach müsste wenn kein Taster aktiv ist (S0 und S1 auf LOW) die "Hold" Funktion
-
Thread
Kann mir jemand was in C schreiben?
Dann reicht aber Port auslesen so nicht. Stichwort "entprellen".
einem Portübergang von High auf Low ein CAN Telegramm. Später hat er dann gesagt, daß er einen Taster anschließen will. Daraufhin habe ich gewagt darauf hinzuweisen, daß dann eine einfache Portabfrage ggf. nicht genug ist. Den Can Bus wollte ich nie entprellen.
-
Thread
Interrupts im Avr-Studio simulieren
anderen Port zu machen??? > Man ist da doch sehr eingeschränkt... Wie Lothar schon sagte: Für Tasten gibt es bessere Methoden als einen Interrupt.
Das man Tasten entprellen muss, hab ich schon gehört - sollte hier jetzt aber noch keine Rolle spielen. Das Prog hat eigentlich ganz simple Fkt. (4-Bit blinkendes Lauflicht) Ist halt mein Einstieg in die Assemblerprogrammierung
-
Thread
C-Funktion zum Entprellen eines Anfängers
Bitte zerlegen, verbessern und kritisieren. [c] int Entpreller(int Pin); // Entprellfunktion einbinden #define Taster PORTEbits.RE2 //Taster definieren int TasterBit =0; // Bei Beginn wird der Taster als nicht geschaltet angenommen, besser Lösung?
int Entpreller(int Pin) // Der Tasterwert wird in Pin übernommen { int Kontrolllauf=1; do //Do -While solange Kontrolllauf kleiner 5 { if(Pin==TasterBit) // Wenn Taster und Bit gleich
-
Thread
Power Switch
an, nochmal drücken->aus) völlig ausreichend? Da ja 6 IO-Pins da sind, kann man doch gleich 3 Tasten entprellen. Peter
Das mit dem Tiny 15 war ein Tipfehler. Es ist ein Tiny 25. Klar könnte ich mehr Tasten entprellen. Das ist allerdings nicht mein Ziel. Das Teil soll nur den Ein/Aus Taster für einen größeren Controller kontrollieren. Dazu soll es folgende Bedingungen erfüllen: 1) So niedrig wie
-
Thread
Assembler: Tastatur an Avr
, damit nichts verlorengeht. Ansonsten ist das nicht ganz so trivial: man muss sich gedrückte Tasten merken, weil sie sonst immer wieder eingelesen würden (eine Repeat-Funktion nach gewisser Zeit kann man trotzdem oft brauchen), und man muss die Tasten, die ja mechanische Kontakte sind entprellen,
o.ä. wenn du nach "Tasten entprellen" googelst. Der Anschluss einer seriellen oder USB-Tastatur ist natürlich was ganz anderes, aber bei µC weniger üblich. Gruss Reinhard