-
Thread
Low-Level Interrupt (nicht Flanke) INT1: Entprellmethode?
. Wenn man schlafen geht und ein Taster prellt, wird man u.U. direkt wieder wach. Jedenfalls hab ich es dann über ein delay gelöst, obwohl die Taster über die 10ms-Methode abgefragt werden. Konkret geht es dabei um die main.c von und
Menüpunkt) in den Tiefschlaf, so stellt man den Sleep-Mode auf Power-Down um und aktiviert den Weck-Interrupt (Low-Level-Ext-Int oder PCI). Der AVR fällt daraufhin am Ende der Mainloop in den Tiefschlaf und schaltet damit auch den Takt seiner Timer aus. Er kann nur noch vom Weck-Interrupt (kann neben Taste
-
Thread
ATTiny45: Aufwachen mit PCINT klappt nicht
Hallo, Ich schicke den µC in den PowerDownModus und will ihn danach durch einen PinChangeInterrupt von 2 Tastern(also entweder der eine oder der andere) wieder aufwecken. In der while-Schleife werden die Taster über Peter Daneggers Entprellroutine abgefragt, deswegen deaktiviere ich den PCINT
dann tun, um das Problem zu beheben? Im Kommentar zu get_key_busy steht doch "until key released". Prellt der Taster eigentlich auch, wenn man ihn loslässt?
-
Thread
Weihnachts-Blinklicht - AVR
Für deine Anforderung brauchst du doch weder (externen)Interrupt noch Entprellung. Du machst einfach einen Timer Interrupt der alle 100ms(oder 10ms) in der IRQ Routine abfragt welche Taste gedrückt ist, bei Taste 1 setzt du ein TastenFlag auf 1, bei Taste
ISR (TIMER0_OVF_vect) // Interrupt Service Routine (bei Timer-Overflow von Timer0) { if((PINC & (1 << TASTER_1)) { Taster = 1; } if((PINC & (1 << TASTER_2)) { Taster = 2; } if((PINC & (1 << TASTER_3)) { Taster
-
Thread
Mikrokontroller Ausfall nach Erschütterung
Scope dranklemmen und messen, wo welche Spannungen sich beim Erschüttern verändern. Ein Taster prellt schon beim normalen Betätigen, was glaubst du, was da für ne Party ist, wenn man die Platine irgendwo aufprallen lässt? In Halter gesteckte Batterien können unzuverlässig sein. Nicht umsonst
M.N. schrieb im Beitrag #3734917: > Ein Taster prellt schon beim normalen Betätigen, was glaubst du, was da > für ne Party ist, wenn man die Platine irgendwo aufprallen lässt? Ich kann mir nicht vorstellen, dass der taster im ausgeschalteten
-
Thread
Atmega32, Taster löst Interrupt zweimal aus
dass der µC für die Wartezeit maximal Strom aufnimmt und überhaupt nicht mehr reagiert. In Interrupts haben Delays garnichts zu suchen! Taster fragt man einfach in der Hauptschleife zyklisch ab, gegen das Prellen lässt man einen Zähler mitlaufen. Taster betätigt -> Zähler plus 1 Taster nicht
wait bringt in dem Fall halt reichlich wenig, da das Flag im ISR trotzdem gesetzt wird wenn der Interrupt getriggert wird. Hier passiert jetzt Folgendes: Der erste Interrupt vom prellende Taster kommt, die Interrupt-Routine wird aufgerufen und das Flag im ISR wieder 0 gesetzt. Während die Interrupt-Routine
-
Thread
MSP430 1.Takt per Taster an LED
Der Taster prellt wahrscheinlich. Siehe hier: http://www.mikrocontroller.net/articles/Entprellung
nicht hinbekommen. Aber wie immer gibt es mehrere Lösungswege. Ein anderer Lösungsweg ist wohl den Taster einen Interrupt auslösen zu lassen und in der Interrupt Service Routine den Ausgangs-Pin (LED) zu togglen. das habe ich hier gefunden: http://www.egarante.net/2010/09/msp430-launchpad-tutorial-part
-
Thread
MSP430 Frage zu Interrupts/Taster
Hallo, ich habe 5 Taster an meinem f149 angeschlossen, über Interrupt. Die Tasterabfrage per Interrupt funktioniert prima. Nun wollte ich folgenedes realisieren, bleibe da aber irgendwie stecken. Die Eingänge liegen auf
dann lösch doch einfach in der ISR für Taster1 das IFG und ändere die Richtung der Flankenerkennung und verlasse die ISR. Beim loslassen erzeugt das dann halt wieder ein Interrupt. Je nachdem wie dein Taster prellt kann es sein dass du dich dann
-
Thread
Dauerhafte Pinüberwachung in Assembler
Ralph schrieb im Beitrag #3452216: > Die Lösung für dein Problem nennt sich Interrupt. > Also deine externe Beschaltung so aufbauen das jeder Taster einen > Interrupt auslösen kann. Das ist Murksprogrammierung. Einen Interrupt für einen stinknormalen Taster brauche ich nur, wenn
Hi, ja danke, aber ich würde ja gerne 10 Programme mit einem Taster nacheinander aufrufen | also bei jedem Taster klick soll das nächste kommen. Und das dann egal, wann der Taster betätigt wird deswegen ja mit den Interrupt. Lg Socke
-
Thread
Prellen am Notaus, Realisieren einen Notaus
gekappt wird und die Motoren stehenbleiben. Aber kann es sein, dass der Schalter 130ms lange prellt? Ich habe auch noch folgendes versucht: Den Taster nicht als externen Interrupt anzuschließen sondern als normalen Taster, den kann ich dann auch softwaremäßig entprellen. Da ist dann solange Notaus-Situation, solange der Taster gedrückt ist und die Situation wird gelöst, sobald man den Taster zieht (über Schleifen realisiert). Für den Pin habe ich den internen Pullup aktiviert und über den Taster mit GND verbunden. Hier
-
Thread
Tastenentprellen während externen Interrupt - ATmega16
Alexander Pl schrieb im Beitrag #3981185: > Dieser Taster ist am Externen Interrupt 0 angeschlossen. Genau an dieser Stelle beginnt das Problem. Ein Taster, der von einem Bediener mit maximal 10Hz betätigt wird, gehört nicht an einen Interrupt. Und
eine LED schalten (toggeln) soll. Dieser Taster >>> ist am Externen Interrupt 0 angeschlossen. Wie kann man softwareseitig >>> verhindern, dass der Taster nachprellt und somit die LED mehrfach >>> schaltet? Man kann diesen Interrupt-Pin als
-
Thread
Tasterentprellung nach AVR-Tutorial
> Und diese beiden Taster hängen dann natürlich an den > Interrupt-Eingängen. Das ist grober Schwachsinn, denn die Pellimpulse von den Tasten können so schnell kommen, schneller als dein uC den Interrupts folgen kann.
MaWin schrieb: >> Und diese beiden Taster hängen dann natürlich an den >> Interrupt-Eingängen. > > Das ist grober Schwachsinn, denn die Pellimpulse von den Tasten können > so schnell kommen, schneller als dein uC den Interrupts folgen
-
Thread
Vorschlag: C-Funktion für Taster-Entprellung
nicht nötig ist. Wenn deine Hauptschleife while(1) nur lang genug braucht, länger als eine Taste prellt (also so 5 ms), dann holen Abfragen der Art uPressedUp=(!(*Port & (1<<Pin))) immer einen entprellten Zustand. Es kann kein Prellen geben, Daher ist deine Funktion (die zudem üble
auf die Ausführungszeit unpraktisch ist, ist natürlich korrekt. MaWin schrieb: >Nimm an, der Taster wechselt bei jeder Abfrage den Zustand >[...] >nur lang genug braucht, länger als eine Taste prellt[...] >üble Parameterliste Ersterer Einwand ist aber sehr akademisch. Wieso sollte ein Taster
-
Thread
geistertasten
aufgefallen ? Zweitens sagst du, dass du nur alle 10ms die Tastatur abfragen willst. Damit ist eine Taste endweder gedrückt, oder nicht gedrückt. Wenn sie (weniger als 10ms) prellt, mekrt das die Tastaturabfrageroutine nicht, sie sieht die Taste bereits ohne Prellen. Daher ist es überflüssig und eher
> wenn die Sache wirklich so einfach wäre Sie ist es. Wenn Tasten weniger als 50ms prellen, sieht man in Abfragen die 50ms auseinanderliegen keine prellenden Tasten. Es geht auch mit 10ms, denn kaum eine Taste prellt 10ms. Wenn du nun noch die richtigen Ports
-
Thread
mega32 interrupt zählt doppelt
Hast du den Taster entprellt?
... So in etwa: Druck der Taste --> ISR wird aufgerufen --> Flag gelöscht Taste Prellt (mehrmals) --> Flag wird wieder gesezt warten warten warten ISR verlassen Da Flag gesezt wird die ISR ein weiteres mal aufgerufen (jezt
-
Thread
PCINT triggert nicht immer
"Taster ein" und "Taster aus". > Oder liegt hier der Hund begraben? Sollte ich lieber Richtung Masse > schalten? Ja. Wenn der Taster jedoch offen ist, dann sollte ein Pullup den Pin hochziehen. Das
fröhlich vor sich hin, heisst, der ISR tut. Also: Hardwareproblem. Wie dämlich kann man sich mit Tasten anstellen? Selbst wenn sie prellen, müsste PB1 doch toggeln. Kein Taster prellt 2 sec lang. Sooo billig waren die auch nicht.
-
Thread
Entprellen an unterschiedlichen Ports
Fall aus: Da ich für alle Taster einen Interrupt auslösen möchte, habe ich diese auf die 3 external Interrupt Eingänge gelegt und zusätzlich noch (über eine Schaltung entkoppelt) jeweils auf einen weiteren Port-Pin meines ATmega32
Daniel D. schrieb im Beitrag #3004085: > Da ich für alle Taster einen Interrupt auslösen möchte, Warum? Wie schnell sind die Signale? Alles, was langsamer als 1kHz ist, braucht keinen Interrupt. Du bekommst die Neben- und Seitenwirkungen bei Verwendung vieler
-
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
Kurze Analyse der Software in "meinem" Unternehmen. Zum Schreien.
Lösung, bei der das Eingangssignal nicht zu schnell erfasst werden darf, beispielsweise ein Taster der prellt oder ein Inkrementalgeber, oder bei Temperatursensoren wo man auch nicht im zehntelsekundenabstand die Heizung schalten will.
Lösung, > > bei der das Eingangssignal nicht zu schnell erfasst werden darf, > beispielsweise ein Taster der prellt oder ein Inkrementalgeber, Da sehe ich keinerlei Notwendigkeit, das als polling in einer busy-loop abzuhandeln. Da würde ich vielmehr in der ISR für die Pegeländerung einen Timer starten
-
Thread
Entprellen und trotzdem schnell reagieren
momentane Tastenzustand übernommen und wenn Sie gedrückt ist, wird der Interrupt auf positive Flanke wieder eingeschaltet. Sollte nun der Interrupt erneut generiert werden, kann man davon ausgehen, das die Taste released wurde. Funktioniert auch mit älteren Tastern und bisher
aufwändiger. Nochmal zum Tastenentprellen: Man muß berücksichtigen, daß eine menschlich bediente Taste 2 mal prellt: 1. Beim Drücken und 2. beim Wieder-Loslassen. Meine o.g. Idee hatte ich mal verwirklicht; aber beim Wieder-Loslassen (=fallende Flanke, wenn Taste im high-active-style verdrahtet), hat
-
Thread
langsamster Takt
Wenn der Taster prellt muss man das reverse-Bit setzen und damit den Controller in den Rückwärtsgang zwingen. MW
hat, gibt es einen Software-Trick zum Single-Step-Betrieb: Man initialisiere einen externen Interrupt, und schließe dort einen Taster an: Drückt man den Taster, landet man im Interrupt. Dort wird der Taster software-entprellt, und beim loslassen des Tasters wieder entprellt. Beim wiederholten
-
Thread
Taster Stromstoßschalter
Das kann man mit einer state machine lösen. state0 //Start Wenn Taster gedrückt, dann state1 state1 LEDs einschalten Wenn Taster losgelassen wird, dann state2 state2 Wenn Taster gedrückt wird, dann state3 state3 LEDs ausschalten Wenn Taster losgelassen
Muss man eigentlich eine Entprellroutine verwenden, wenn der Taster gar nicht prellt? (Einfach ein RC-Glied vor den AVR-Eingang schalten) Ich denke das Prellen ist hier nicht das Problem sondern das Abfragen eines Eingangs und die Anfangsschwierigkeiten mit C.
-
Thread
Externer Interrupt löst Reset aus
Code: [c] #include <avr/io.h> //Einbinden der Standart I/O Library #include <avr/interrupt.h> //Einbinden der Library für Interruptfunktionen //PORTD: PD2 Taster für Interrupt // PD4 Taster für Testprogramm int Int=0; //Init der Interruptvariablen
PD2 als Eingang (Funktionstasten) PORTD= 0xFC; //Pull Up´s an PD7 - PD2 aktivieren (Tasten) //Initialisierung Interrupt MCUCR= (1<<ISC00) | (1<<ISC01); //Interrupt Int0 bei steigender //Flanke auslösen GICR = (1<<INT0); //Interrupt
-
Thread
Simulation - Prellen/Entpellen von Tastern
Digitasten die als besonders prellarm gelten!!! Die Bilder sahen natürlich bei jedem Druck auf die Taste anders aus. Ein Schließer- kontakt prellt aber deutlich stärker als ein Öffner.
dass der verschluckte Schaltvorgang der letzte beim Einschalten war, und so der Zeitraum, den die Taste gedrückt war, als ausgeschaltet protokolliert wurde. 2.: Taster an INT0 (PD2) anschließen Hier wird durch jeden Ein- und Auschaltvorgang ein Interrupt ausgelöst, ohne dass die Flankenrichtung gewechselt
-
Thread
AVR Studio - Programmlänge angeblich zu groß
Hi >Und da ist auch nichts zu umgehen? >Hm tja, Interrupts für Taster sind zu 99% nicht die sinnvollste Lösung. Das wurde hier im Forum schon zig mal bis zum Erbrechen diskutiert. Die Forumssuche nach 'Taster+ Interrupt' bringt 1906 Treffer. Eine elegante
das EIFR lade, dann sollte doch alles klappen? Hast du dir durchgelesen was es heißt, dass dein Taster prellt?
-
Thread
Attiny45 Interrupt in c
Wo fragst Du den Taster ab?
Dein Taster prellt vermutlich so stark, daß Dein Programm sofort wieder in den Interrupt spring.
-
Thread
External Interrupt INT0 Problem
Hallo Leute, habe mal eine Frage bezüglich dem externen Interrupt INT0. Ich habe den Interrupt so eingestellt, dass er bei einem Falling-Edge ausgelöst wird. Hierzu habe ich einen Taster an den PIND2 meines ATmega328P angeschlossen, der wiederrum mit GND
ist aber anders, und ein Taster gehört eben deshalb nicht an einen Interrupt. Weil er prellt. Es kann sein dass bei Aktivierung von sei, bereits ein Interrupt Flag gesetzt war, und somit die ISR sofort angesprungen wird. Daher
-
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
Tasterabfragen Problem
Peter, Du meinst bestimmt der Taster ist zwischen AVR µC Eingang und Masse angeschlossen ? So ein Taster prellt leider und hat nicht gleich zu Anfang und Ende eine definierten Zustand. Dann fehlt Dir noch eine Flankenerkennung-
#include <avr/io.h> #include <avr/interrupt.h> #include "Zeit.h" #include "myLcd.h" //Taster Definitonen #define Menu_Taster PC0 #define LED PC1 int main(void) { DDRC |= (1<<LED); DDRC &= ~(1<<Menu_Taster); PORTC
-
Thread
Wie Drehimpulsgeber entprellen
auch schon so gemacht und es funktioniert sehr gut. ((( - PIC Controller - Ein Signal auf einen Interrupt-Eingang - das andere wird dann im Interrupt abgefragt - Widerstände waren 4k7 ))) Die zweite Schaltung passt vermutlich nicht zu deiner Anwendung wenn du nicht das Programm ändern willst .
Beschaltung des 74 HC14 so richtig: http://www.mikrocontroller.net/articles/Schmitt-Trigger (Taster entprellen mit 74HC14) Oder müssen für die Widerstände am IC andere Werte genommen werden? Frank
-
Thread
"zwei Stufen LEDs"
weil dein Taster prellt!
Ich frag die Taste nicht ab... sie ist am INT0 Pin angeschlossen. Wenn man sie drueckt erzeugt sie einen Interrupt. Ist das nicht Standard so? kann man das eleganter machen? mg, Johannes
-
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
AVR XPlained 328PB Freigabe/Nutzung von PCINT 21
Hallo, du hast noch 2 Probleme. Der Taster prellt, musste entprellen. In der ISR tust du ver-odern nicht toggeln. Wenn es keine reine Übung ist, dann würde ich Taster nicht mittels ISR abfragen.
ein Missverständnis bezüglich der Funktion: nach Programmstart liegt C3 auf low, nach Drücken von Taster an D5 geht C3 *dauerhaft* auf high. [c] #define F_CPU 16000000 #include <avr/interrupt.h> #include <avr/io.h> ISR(PCINT2_vect){ PORTC|=1<<PORTC3; } int main (void) { PORTD|=PORTD5
-
Thread
» Geht das und wie??? Takterzeugung, 2Taster einlesen usw..
NICHT *rofl* In der ISR habe ich: 1. die globale Interrupt freigabe gelöscht 2. die Tasten mit 10ms entprellt 3. ext. Takt einlesen und an OC1 ausgeben 4. überprüfen ob Taster noch betätigt, wenn ja zurück nach 3. 5. die globale Interrupt freigabe gesetzt
NICHT *rofl* In der ISR habe ich: 1. die globale Interrupt freigabe gelöscht 2. die Tasten mit 10ms entprellt 3. ext. Takt einlesen und an OC1 ausgeben 4. überprüfen ob Taster noch betätigt, wenn ja zurück nach 3. 5. die globale Interrupt freigabe gesetzt
-
Thread
Interrupt Atmega168
> ich möchte am Atmega168 einen ext. Interrupt am PCint18 (PD2) auslösen, > fallende Flanke. > Er löst aber bei beiden Flanken aus. > Wo liegt mein Fehler? Wenn die Konfiguration wirklich stimmt dann prellt wahrscheinlich dein Signal. Woher
pos., neg. Flanke oder Low-Pegel reagieren sollen. Generell aber wieder mal anzumerken: Externe Interrupts sind zur Abfrage von mechanischen Kontakten eigentlich eher ungeeignet. Besser mit nem Timer ne Zeitbasis erzeugen und alle paar zig Millisekunden die Taster einlesen. Dann kann man sich den ganzen
-
Thread
Externer interrupt INT1 -> ständiger interrupt?
Interrupt ohne Handler - jedenfalls sehe ich im Code keinen.
LCD Ausgaben im ganzen Programm? Lies: Was passiert wohl, wenn mitten in einer LCD-Ausgabe der Interrupt kommt? Ausserdem ist diese Ausgabe recht langsam, folglich der Interrupt recht lang beschäftigt. Womit auf GND gehängt? Taster oder freifliegendes Kabel wäre keine gute Idee, weil prellt und folglich
-
Thread
MSP430 Anfänger: Probleme beim Lösen einer Aufgabe
ich benutze das Olimex Board mit dem MSP430 F149, Quarz 32kHz und habe folgende Beschaltung: Taster 1 an P1.0 Taster 2 an P1.1 Taster 3 an P1.2 LED an P2.0 (werden die Tater betätigt, liegt GND an die Pins, ansonsten Vcc) Die Funktion soll nun so sein: wird Taster1 (P1.0) betätigt, so
Hast du die Taster per Software entprellt ??? Du must wenn das Programm erkannt hat das du den taster betätigt hast das signal ca 10ms später noch einmal abfragen um sicherzustellen das der taster gerade nicht prellt
-
Thread
ASM Inkrement Fehler
nullen ldi pstate, 0 ;ADC init ldi temp, (1<<ADEN) out ADCSRA, temp ;Interrupts an sei mainloop: rjmp mainloop timer0_overflow: reti ;Interrupt durch Taster ;in pstate int0_handler: ;Interrupts aus cli inc pstate start_vergleich: cpi pstate
Matthias schrieb im Beitrag #3068088: > Der Taster ist soweit schon hardwareseitig entprellt. Wie? > Aber das ist > schließlich nicht mein Problem. dass kann man so nicht sagen, prellt der Taster, so wird pstate in kurzer Zeit mehrmals erhöht.
-
Thread
(narren-)fehler in code - hilfe?
hallo zusammen, ich suche den fehler in diesem code, den ich (möglichst einfach) zum lernen mit Interrupts umzugehen geschrieben habe. Es sollte passieren: Blinken der led in ihrer 1. frequenz bis taster gedrückt wird, dann in der 2., bis er erneut gedrückt wird (wieder die erste) usw. es wird immer
Pollin_Funk-AVR-Evaluationsboard#Suppentimer Das Prellen spielt dort keine Rolle, weil nur das einfache Wecken per Interrupt implementiert wird. Dann ist es egal, ob die Wecktaste prellt. Wach ist wach. Das Schlafenlegen kann dann mit einer regulären Tasteneingabe oder mit einem Timeout (Suppentimer) gemacht werden.
-
Thread
Reedkontakt einlesen, Polling oder Interrupt oder Pinchange
aus. Soviel zur Theorie. Jedoch in der Praxis stellen sich mir andere Fragen. Der Reed Kontakt prellt ja. Somit ist es fraglich, ob ein Interrupt für die Messung in Frage kommt, da ich anschließend sowieso über einen Timer entprellen muss. So wie ich das sehe, wäre ein Pinchange in dem Sinne gut
>> Welchen zweck sollten dann Externe Interrupts haben? Für schnelle Sachen wie: Encoder (an Motoren), Software-UART, Frequenzmessung... Für Taster reichen Timer eigentlich meistens aus.
-
Thread
Tastaureingabe ohne warten zu müssen abfragen
Hallo Martin! Wieso legst du die Taste nicht auf einen interruptfähigen Pin und bastelst dir die entsprechende Interrupt-Routine? Schön Gruß Rahul
So wie ich Martin verstanden habe, möchte er sein Programm nicht mit unnötigem Warten auf eine Taste anhalten. Wenn er den Flankenwechsle der Taste mit einem Interrupt erkennt, kann er sie nachträglich immer noch entprellen, sofern der Interrupt gesperrt ist (so kenn ich das noch auch 8051-Zeiten)
-
Thread
eigenes mega16/32 board
gepolte und ungepolte c richtig zeichen entstör c fehlen c am quarz is auch nen ungepolter taster haben nix am iterrupt zu suchen es sei denn du willst wissen wie stark der prellt D1 welcehn zweck hat die keinen oder ? schau du dir mal lieber die sahen von anderen an und lerne
@... einen Taster kann man auch im Polling abfragen. Niemand zwingt einen den Pin/Port als Interrupt Eingang zu nutzen.
-
Thread
Zeit eines tastendrucks messen
Hallo, hast du auch beachtet da ein Taster prellt, d.h. das nicht sofort tatsächlich eine 1 (high) anligt sondern für einen kurzen Zeitraum (einige ms) immer zwischen 1 und 0 hin und her geschaltet wird ? Dein Stichwort ist Tasterentprellung
Ja der Taster ist enprellt.
-
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
INT0 Interrupt wann?
Obwohl ich im MCUCSR Register die Einstellung "The rising edge of INT0 generates an interrupt request" gesetzt habe, wird der Interrupt beim Einlegen der Spannung und beim Wegnehmen der Spannung aufgerufen! Warum???
Beitrag #1807301: > Ich lege die Spannung mit einer Drucktaste an. Dachte ich's doch. Dein Taster prellt. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten#Prellen Hast du wenigstens einen Pulldown-Widerstand? Ein Eingang, der in der Luft hängt, hat keinen besonders gut definierten
-
Thread
RX-TX verwendet: dadurch gesamter Port blockiert?
von RX-TX meine Tasten anschliessen kann? Das gleiche passiert übrigens auch auf PortA: Dort verwende ich ADC0 - und muss dort sogar auf 7 Pins verzichten. (auch hier Interrupt gestützt, d.h. nach Auswertung wird Interrupt
UART wieder frei ist. Weiterhin ist das mit der Schleife unsauber, wer garantiert dir, dass der Taster nicht während des Schleifendurchlaufs prellt? Schau dir mal ein paar Routinen zur Tastenentprellung an (Codesammling) Gruß Roland
-
Thread
C-Funktion zum Entprellen eines Anfängers
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? =Taster gibt Fehler /** D E C L A R A T I O N S **********
wurden bereits erfunden. [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? =Taster gibt Fehler /** D E C L A R A T I O N S **********
-
Thread
Schwierigkeiten mit den externen Interrupts vom Atmega328p
und mir sind mittlerweile die Möglichkeiten ausgegangen. Ich möchte lediglich eine Led mit einem Taster ansteuern und dass über einen Interrupt (Ich weiß dass es eigentlich Sinnlos ist mit dem Interrupt). Ich habe bereits viele Seiten abgeklettert, aber keins der Beiträge konnte mein Problem lösen
. > Flag Register erfüllen > ;store EIFR, temp1 nur wegen der Frage: damit wird das Interrupt-Flag zurückgesetzt. Das wird gesetzt, wenn der Interruot ausgelöst wird und vom Aufruf der Interruptroutine autimatisch wieder gelöscht. Es gibt auch Interrupts, wo das nicht automatisch passiert
-
Thread
LEDs mit Timer ansteuern
mir selbstverständlich alle gegebenen Anleitungen durchgelesen, leider ist mir das mit dem Timer/Interrupt nicht ganz klar geworden. ich habe 2 LEDS an meinen AtMega 8 angeschlossen (LED1 =^ PD6; LED2 =^ PD5) sowie einen Taster (taster =^ PD2), nun mein Projekt: Ich möchte, dass eine LED (PD6) leuchtet
Oldie schrieb im Beitrag #3461945: > Ich drücke den Taster Das denkst du, inwirklichkeit drückst du ihn mehrfach - ganz einfach weil er prellt. Falls du über ein Speicher-Scope verfügst, kannst du den elektrischen Part eines Tasterdrucks respektive Schalterbetätigung
-
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