-
Thread
Tutorial, tasten in asm
************************************************* Nun kann es natürlich sein, dass ein neuer Taster zunächst überhaupt nicht prellt. Ist der Taster vom Hersteller nicht explizit als 'prellfreier Taster' verkauft worden, besteht aber kein Grund zur Freude. Auch wenn der Taster heute noch
Claude44 schrieb im Beitrag #4408560: > ich kann nicht beurteilen ob die interrupt richtig reagiere Ich sehe im Programm keinen Interrupt. Gruß Dietrich
-
Thread
Folientastaturen prellen nicht?
Hallo Fabian, wenn ein Taster jetzt vielleicht unterhalb eines Messbereiches prellt, was ist dann in 1 oder 5 Jahren? Wie will man garantieren, dass solch ein Taster immer diesen Zustand behält? Er altert auch.
Hallo Fabian, wird das Interrupt-flag INTn nicht erst nach verlassen des ISR gelöscht und ist für PowerDown Mode den etwas anderes als Level Interrupt möglich ? Somit muss man in der ISR dem INTn abschalten und die Taste entprellen
-
Thread
Schaltung falsch oder zu sensibel?
Widerstand nach Masse) eine Schaltung aufgebaut, Eingang ist PB3. uC ist ein Attiny85, der per Interrupt aus dem Schlaf geweckt wird und der Taster ist in meinem Fall ein Öffner. Schaltung funktioniert auch einwandfrei, wenn Öffner betätigt wird. Allerdings wird der Interrupt öfter auch ausgelöst,
Ein kleiner Kondensator (10nF) parallel zum Taster könnte helfen.
-
Thread
AVR Interrupt Problem in C
Was hängt an dem Pin für "INT0", ein Taster? Wenn ja, vielleicht prellt Der und der Interrupt wird mehrmals hintereinander ausgeführt.
test schrieb im Beitrag #4376826: > Was hängt an dem Pin für "INT0", ein Taster? Wenn ja, vielleicht > prellt > Der und der Interrupt wird mehrmals hintereinander ausgeführt. arbeite mit einem dev board, welches eigentlich mal für pic controller war. wegen dem nachprellen
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
Deswegen hat er den nahezu gleichen Overhead eingebaut, wie es ein C-Compiler tut. Und auch die Interrupts. Dadurch können seine Asm-Schäflein den Code mühelos erweitern. Und der arme Anfänger packt den leeren RAM bis zum Rand voll, dann kommt der erste Moby-Interrupt und zerschiesst ihm seine Daten
Überlegenheit denn als Niederlage). p.s.: Kauf' dir mal 'ne neue Tastatur, deine Fragezeichentaste prellt.
-
Thread
Siemens-Computerdeutsch
Ist der Downloadzähler kaputt? Die ersten 390 Downloads in einer Viertelstunde? Da prellt doch ein Relaiskontakt in der Forensoftware.
anhielt. Das lief auch über einen der Hardware-Interrupteingänge, ich meine den NMI (non-maskable Interrupt) des 6502.
-
Thread
Welcher Drehgeber ist am besten geeignet?
Sven schrieb im Beitrag #4303412: > Endlosschleife oder per Interrupt? Und los gehts...
Max M. schrieb im Beitrag #4303439: > Meine Meinung: Interrupt! > ... > 2. Der MC hat normalerweise was besseres zu tun als sinlos Eingänge zu > pollen. z.B. darauf zu warten, dass ein Interrupt kommt.
-
Thread
Warum Gray Code für Drehencoder?
Aufwand mit dem für Graycode. 2) Mechanische Kontakte prellen. Bei Graycode egal, bei Deinen Tastern fatal.
Zähler würde munter vorwärts zählen. So wie in Zähler, dessen UP-Eingang man mit einem einfachen Taster zum druafdrücken versieht. Der zählt bei jedem Tastendruck auch nicht +1, sondern um einige Impulse weiter, eben so viel wie der Taster prellt. Man müsste die Tasterkontakte entprellen. Das geht
-
Thread
Auswertung "schneller" Inkrementalgeber
nicht schneller abgearbeitet als oben im Oszi Bild gezeigt. Mir wurde schon erklärt, das viele der Interrupts "unter den Tisch fallen".
gefahren (wird später noch optimiert) -mit der Tastatur des PCs lässt sich nun der Motor fein (, und .Taste) und grob (m und - Taste) bewegen. -mit 'h' kann die aktuelle Position abgefragt werden, mit 'j' auf 0 gesetzt werden. Der simple Regler ist vorerst zweckmäßig, denke ich. Es scheint auch zu
-
Thread
arduino encoder problem
these two numbers to the pins connected to your encoder. // Best Performance: both pins have interrupt capability // Good Performance: only the first pin has interrupt capability // Low Performance: neither pin has interrupt capability Encoder myEnc(10,11); // avoid using pins with LEDs
Stephan R. schrieb im Beitrag #4282904: > // Best Performance: both pins have interrupt capability > // Good Performance: only the first pin has interrupt capability > // Low Performance: neither pin has interrupt capability Aua... Stephan R. schrieb im Beitrag #4282919:
-
Thread
ATmega8 ADC-Durchschnittsberechnung
krusti schrieb im Beitrag #4267021: > (wo ich > glaube das dieser entweder prellt oder ich ihn schaltungstechnisch > falsch angeschlossen habe) Wie hast du sie angeschlossen? Laut COde [c] if ((PINB &TASTE_1)) [/c] ist das dann ein Taster, der beim Drücken gegen
halt die ABfrage um. [c] if (!(PINB &TASTE_1)) [/c] Aber wenn du in deiner Verschaltung keinen Pulldown Widerstand hast, dann hängt der Pin bei nicht gedrücktem Taster in der Luft. Ein in der Luft hängender EIngang hat aber mitnichten zuverlässig
-
Thread
Bosch E-Bike Antrieb Geschwindigkeitssensor
Timer und auch ein PWM Modul hat, hätte ich es vermutlich anders gemacht. - Reedkontakt auf Interrupt Pin - Timer0 zum Zeit ablesen - Timer2 für die PWM Das ganze bestünde vermutlich aus der Initialisierung, einer Hauptroutine die absolut gar nichts tut und dem Pin-Interrupt, der aus der vergangenen
Reed-Relays (via Transitor Basiswiderstand und Freilaufdiode) am TTL Ausgang meines Generators - das prellt ordentlich. Grüße, egberto
-
Artikel
AVR-Tutorial: Tasten
Loslassen der Taste dann dasselbe Spielchen in der umgekehrten Richtung. Nun kann es natürlich sein, dass ein neuer Taster zunächst überhaupt nicht prellt. Ist der Taster vom Hersteller nicht explizit als 'prellfreier
sind relativ willkürlich und so gewählt, dass man einen Zähler leicht aufbauen kann. Wird die Interrupt Routine also alle 5 Millisekunden aufgerufen, dann muss die Taste bei 4 Stichproben hintereinander durchgehend gedrückt worden sein. Prellt die Taste in dieser Zeit, dann wird der Zähler einfach
-
Thread
Drehimpulsgeber
abgekommen. Der Timer fragt bei mir nicht nur den Drehgeber ab, sondern auch alle 10 mal etwaige Taster, so das dieser eine Interrupt für alle Benutzerabfragen sorgt, klein kompakt und schnell. In den meisten Projekten bei mir gibt es sowieso Bedarf für einen Ticker. Mich beeindruckt dabei besonders
extra Hardware aus RC Glied und Schmitt-Trigger, die die Impulszeit garantiert auf die maximale InterruptDauer ausdehnen, https://www.mikrocontroller.net/articles/Datei:Entprellung_mit_IIR-Filter.gif funktioniert die Erfassung nicht zuverlässig. Und ob und wann ein Taster wie schnell prellt
-
Thread
Verständnisproblem ISR am Attiny24
, die als Marker dienen soll, ist als volatile gekennzeichnet. Der Interrupt wird auch erreicht, d.h. der INT ist richtig enabled etc., Taste löst ihn auch aus, der ändert in der ISR den TEST_OUT_PIN, kann man sehr gut verfolgen. Die ISR müsste also die Variable auf 1 setzen
Interrupt einschalten: sei(). Was soll das reti() sein? Macht der Compiler selber und richtiger. Aber: Taster als Quelle von Interrupt sorgt für Freude, weil er prellt.
-
Thread
LPC1769 Kompass Sensor auslesen mit timer0 interrupt
ausgegeben werden, was auch einwandfrei funktioniert. Der Knopfdruck wird bisher über einen GPIO-Interrupt registriert. Da der Taster aber mordsmäßig prellt, möchte ich sowohl Taster mit Timer0 periodisch abfragen (und somit entprellen), sowie auch das Timing der Kompassdatenabfrage regeln. Mit Timer1
soll ja niemals anhalten sondern Interrupts auslösen.
-
Thread
Eingabetaster mit zwei unterschiedlichen Funktionen (PIC)
sich der Taster geänder hat und setzt fallweise das passende Bit. Entprellt ist das dann auch gleich, wenn der Taster nicht länger als 10ms prellt. Funktionen, die Benutzereingaben verarbeiten, bekommen einen Pointer
~~~|+++++|###########| Dann habe ich eine Funktion, die zählt einen Zähler hoch, so lange der Taster gedrückt ist. Wird der Taster los gelassen, wird geschaut, wie lang der Taster gedrückt war: - Zähler < TKURZ ist, dann wird die Funktion kurzer_druck() aufgerufen - Zähler > TKURZ ist, dann wird
-
Thread
ATtiny2313: PowerDown/Taster_prellt/Programm_verhällt_sich_seltsam Problem
Hallo, ich habe ein Problem mit meiner Schaltung/Programm und finde einfach den Fehler nicht ;-( Eine kleine mit 4,5V batteriebetriebene Schaltung soll bei Tastendruck LED hochdimmem, bei erneutem Tastendruck runterdimmen oder nach ca. maximal 60s von allein wieder runterdimmen falls keine Taste gedrückt wurde. Stromsparend solls auch sein. Anwendung ist eine Beleuchtung für ein Plastikmodell. Jetzt zum Problem: Die Schaltung funktioniert einwandfrei wenn ich den Dragon Programmierer dranhängen habe aber spielt verrückt wenn ich sie vom Dragon trenne. Und das verstehe ich nicht so ganz.
-
Thread
Erkennung von Prellenden Schaltern
die Prellen nun dürfen diese > aber maximal über eine zeit von 10µs prellen. jeder Schalter prellt! warum nur max. 10µs? sind wirklich Schalter gemeint oder Taster? Wenn Schalter gemeint sind, warum nicht elektronisch schalten? mit PeDa bullet proof Tasterentprellung filtere ich sogar
der Schalter das erste mal seinen Zustand ändert (geschlossen wird), beispielsweise durch einen Interrupt. Erst 10us später schaltest du den Eingang wieder auf pin Change Interrupt. Dieser darf dann NICHT mehr ausgelöst werden (bis zum loslassen/ausschalten). Wird der Interrupt 10us und später nach
-
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
Kann diese Tasterschaltung sein?
draufstecken. Der Taster ist blos ein one-shot-Interrupt, da ist prellen ja egal. Anfänglich ging das super ohne jedes Bauteil. Bis ich vor zwei Wochen einen neue Sessel gekauft habe (Meyer spirit). Seit dem ist das Ding
sollte jeder ISP-Prommer verkraften. 3k3 Pullup sind bei mir immer vorhanden. Auch einen Ein-Aus-Taster an einem Interrupt-Pin anzuschließen, ist eine zuverlässige Methode der Entprellung, auch wenn die meisten Leute mit dieser genialen Schaltung überfordert sind: 10 kOhm liegen in Reihe zum Taster und
-
Thread
Interrupt Entprellung
durchlaufen, also in einer bestimmten Reihenfolge ein- bzw. ausgedimmt werden. Nun habe ich noch einen Taster an den Interrupt-Port angeschlossen, mit welchem das "Lichtspiel" gestartet bzw. beendet werden soll. Dazu ändert der Interrupt immer den Wert einer boolschen Variable. In der Lichtspiel-Methode
Nicht die Supa-Dupa Methode aber möglicherweise reicht sie bei dir http://shelvin.de/eine-taste-per-interrupt-einlesen-und-entprellen/
-
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
Permanente Port abfrage
www.if-schleife.de/ Schreiberling schrieb im Beitrag #3776825: > das Stichwort heißt : Pinchange Interrupt oder externer Interrupt. Bei einem Schalter würde ich eher über das Timer Interrupt gehen, da ein mech. Schalter prellt, siehe [[Entprellung]].
Danke, ja hatte bei Interrupts im kopf, das sie auch immer nur am durch eine Abfrage gucken, ob ein Taster gedrück wurde oder nicht. Wie eben bei einem Fußgängerübergang ;) werde mir jetzt aber man die ganzen Ideen angucken
-
Thread
Probleme Tachosignal Auswertung
Externen Interrupts. Kann ich diese nicht beide Laufen lassen?
wäre es ja einfach einfacher mir eine Erklärung zu geben, warum ich nicht das Timer1 Register als Interrupt und gleichzeitig den Externen Interrupt (Int0) mit dem MCUCR Register nutzen kann. Denn wenn mein Programm so aussieht, läuft der Timer nicht. [c] MCUCR = 0b00000010; //Externe Interrupts
-
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
Eingangssignal zählen
etwas findet, wenn man Prellen von vorneherein ausschließt. Aber lass Dir gesagt sein, dass _alle_ Taster prellen, es sei denn Du hast extra für prellfreie Taster bezahlt - und das merkst Du dann schon im Portemonais. Da entprellen schon ein Thema für sich ist - Peters berühmte Entprellroutine erfordert
San lue hab ich genau das selbe Problem wie mit meinem! Die Led Flackert kurz beim ersten mal Tasten sonnst tut sich nix!
-
Thread
Taster Entprellen [Interrupt]
Mit dem flankengesteuertem Interrupt kann man den Taster nicht gut entprellen, da jede Prell-Flanke ein Interrupt auslöst. Für gewöhnlich nimmt man ein Timer Interrupt und fragt den Zustand in der ISR ab. Siehe --> [[Entprellung]]
Ich habe das grade mal probiert und kann bestätigen - per Interrupt Taster entprellen ist eine schlechte Idee. Habe das jetzt so weit getrieben: - Interrupt auf steigende Flanke an PinB3 (Taster zieht mit 150Ohm auf Vcc; Pin hat 10k Pulldown auf GND). - Erste
-
Thread
INT0 Entprellen ohne Timer & Delay
Irgend wie musst Du die Zeit /verstreichen/ lassen, bis der Taster nicht mehr prellt. Was der µC in der zeit macht ist eigentlich egal und bei nem manuell bedientem Taster, ist es auch nicht so wichtig, das dabei immer exakt die selbe Zeit verstreicht. Such Dir also
in der Zeit machen kann. Bau also in Deinem Programmablauf an geeigneten Stellen einen Aufruf der Taster-Routine ein.
-
Thread
Attiny 13 möglichst Stromsparend
@ Cal (Gast) >- Spannungsversorgung 3V >- Interrupt über externen Button sollte möglich sein >- Mit irgend einem Timer sollte ich 1h timen können >- Jede Stunde (oder eben durch den Button) wird dann ein Pin kurz auf >High gesetzt >Viel mehr
so. Lass > ihn alle 8sec aufwecken, check, sleep. Kommt auf die Implementation an. Dient die Taste nur zum Aufwecken ist es doch egal, ob die prellt. Als Bedienelement sollte/muß sie entprellt sein. Auch hier kommt es auf die Funktion der Taste an. Bei dem kleinen Tiny kann auch HW Entprllung statt
-
Thread
Interrupt Routine
Controller es sich handelt? Wer oder was löst wie, wann und warum INT1 aus? Was ist auf PB4-PB7? Taster? mfg.
halbe Sekunde? Wenn ja, dann hast du ein Problem mit deinen Lichtschranken. Du kriegst mehrere Interrupts pro 'Betätigung'. Wie werden die eigentlich betätigt? Denn eine Lichtschranke prellt zwar selber nicht, wenn aber der Lichtstrahl mehrmals hintereinander entsprechend unterbrochen wird, dann kommt
-
Thread
Change Notification Interrupt
Im Horoskop steht dazu heute: Du könntest Pech haben, wenn die Taste prellt.
Du kannst auch ein externes Interrupt verenden, du solltest aber in der ISR so lange warten, dass der Taster nicht mehr prellt, bis du den PORT für die Flankenerkennung abfragst. Sonst kann es dir passieren, dass du den PORT in dem Moment
-
Thread
Frage zur Dekodierung von Drehencodern
so stark, das man am besten nur alle 5-10ms nachfragt. Wer das in einem flankengetriggerten Interrupt macht, muss da richtig Zeit für aufwenden. Da die Timer ISR vorhersehbare Verarbeitungszeit besitzt und nebenbei z.B. auch noch Taster abfragen kann, halte ich das für keinen grossen Preis für eine
Wilhelms schrieb im Beitrag #3539855: > Zumindest nicht, wenn man eine vernünftige Schaltung ohne > Interrupt verwendet. :-) Aaargh, nicht schon wieder :-P Lange Leitungen zu Tastern und so sind aber schon empfindlich, wenn man sich nur auf die eingebauten Pullups z.B. der AVR verlässt. Die sind mit
-
Thread
Atmega8 L293D Schrittmotor Code Problem
Impulsausgabe vor oder zurück. Den Takt erzeugt man am besten mit einem Timer und die Taktausgabe im Timer-Interrupt, wenn Du es verbessern willst. Fertig.
? Der kann das alles perfekt. > So wie es aktuell ist, dreht der Motor sich so lange ich den taster > gedrückt halte. > > Flanken auswerten dann brauch ich bestimt timer. Kommt drauf an. Wenn das EIngangssignal nicht prellt brauchst du keinen Timer. Du brauchst nur eine Flankenerkennung
-
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
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
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
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
Analog Comparator => Interrupt läst sich nicht einstellen
das der Prozessor im Interrupt die Interrupts deaktiviert. Sie werden auch erst dann wieder aktiviert, wenn die Anzeige wie oft der Interrupt ausgelöst hat fertig ist. Leider löst der Interrupt immer noch viel zu oft aus (1mal
Verwendest du einen Taster? Falls ja, kann es sein, dass er prellt. Entweder - wie schon von anderen erwähnt - eine RC-Kombination mit größerem Tau als die Prellzeit vorschalten oder das Signal sauberer erzeugen. Im einfachsten
-
Thread
ATTINY 13 Weihnachtskarte LED - Fehler im Code?
_PIN ); LED_DDR &= ~(1 << BUTTON_INPUT_PIN); } void init_interrupt() { MCUCR &= ~0x3; sei(); } void free_external_interrupt() { //GICR |= (1 << INT0); } void lock_external_interrupt() { //GICR &= ~(1 << INT0); } void power_down()
*kopfkratz* Neben den Widerlingen solltest Du einen Timer statt delay nehmen und wie wird der Taster denn erkannt ? Ein Taster prellt, d.h. wenn Du den nur am externen IRQ ohne Softwareentprellung hast gibt's viele IRQs hintereinander. Und eine sinnvolle ISR sehe ich auch nicht ? Du solltest in
-
Thread
Aufwachen aus Powerdown mit INT0 falling und internen Pullup
wartet solange bis INT0 wieder high wird und arbeitet dann die Befehle der ISR ab? Und wenn der Taster prellt, dann werden evtl. die ersten Befehle der ISR abgearbeitet bis der µC wieder an den Anfang der ISR springt weil INT0 wieder im Prellen low geworden ist?
der INT0 auf Low bleibt, dann wird nach dem Ende der ISR sofort wieder in die ISR gesprungen. Der Interrupt wird ständig ausgelöst solange INT0 auf low ist. Prellen wird nicht drin Problem sein, aber wenn der Taster gedrückt gehalten wird, diesen Fall solltest du bedenken. gruß cyblord
-
Thread
"Programm bleibt in der TIMER ISR hängen"
Das cli im Interrupt ist unnötig. Interrupts sind gesperrt während ein Interrupt ausgeführt wird EDIT: Das sei in deiner if(gedrueckt == 5) Abfrage auch... aus o.g. Grund Ist dein Taster Hardwareseitig entprellt
Interrupts abschalten >> Ist dein Taster Hardwareseitig entprellt? > Nein der Externe-Interrupt wird mit der fallenden Flanke ausgelöst. aber wenn dein Taster prellt, dann landest du öfter in dem Interrupt
-
Thread
RC5: Taste nur einmal drücken
(jeweils Code 1) Leider bleibt es aber nicht bei einer Ziffer wenn ich die Taste einen Moment zu lange gedrückt halte. Es ist vielleicht vergleichbar als wenn eine Taste prellt. Wie kann ich das hinbekommen, hat vielleicht jemand eine Idee? Hier ein Teil des Codes wie ich
gedrückt uint8_t code = rc5.code; uint8_t addr = rc5.addr; //PROGR Taste gedrückt if (code == 41){ taste_nr = 0; wert = 0; taste = 41; //merken das PROGR gedrückt war } // taste "1" if ((code == 1) && (taste =
-
Thread
Problem mit Interrup1
habe ein Problem mit meinem ATmega16. Ich möchte einen LED-Cube programmieren und mit Hilfe des Interrupt 1 eine globale Variable hochzählen um zwischen verschiedenen Modies zu schalten. Mein Problem: Der Interrupt funktioniert, aber die globale Variable wird nicht hochgezählt... egal was ich
Hab wieder was verändert. Nach Wünschen von Arno. ps.: der Taster prellt nicht. es war nur zur Sicherheit.
-
Thread
Tastenenprellung Deluxe P. Dannegger
als zusätzliches Bedienelement eingebaut ist, ist doch Jacke wie Hose! Der Taster prellt doch nicht weniger, nur weil er in einen Encoder eingebaut ist. So ein Encoder hat 3(!) Ausgänge Spur A - Abtastung mit dem 1ms Timer Spur B - Abtastung mit dem 1ms Timer Taster
einstellen*/ CLK.CTRL = CLK_SCLKSEL_RC32M_gc; /* Pullup für alle Taster */ PORTC.PIN3CTRL |= PORT_OPC_PULLUP_gc; PORTC.PIN2CTRL |= PORT_OPC_PULLUP_gc; PORTC.PIN0CTRL |= PORT_OPC_PULLUP_gc; PMIC.CTRL |= PMIC_LOLVLEN_bm; // Lo Interrupt Enable
-
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
AVR Uhr wird von INT0 interrupt gestoppt
können. Das funktioniert auch alles, nur leider wird der Interrupt immer wieder auf gerufen, solange der Taster gedrückt bleibt. Dadurch läuft dann die Uhr nicht mehr weiter. Eigentlich sollte der Interrupt ja nur auslösen, wenn der Pegel am Pin sich verändert. Daher gehe ich davon aus, dass der Taster prellt? Ich habe deshalb versucht, den das ganze durch ein _delay_ms(20) direkt nach dem aufwachen zu verhindern. Das behebt das Problem aber nicht, wenn der Taster trotzdem länger gedrückt wird
-
Thread
Verständnisfragen zur Tasterentprelllung Version von Peter Danneger
Durchgang mal den key_state zu ändern... Das passt schon so. Bei deinem ersten Durchgang wird die Taste nicht als gedrückt gewertet. Aber: ct0 bzw. ct1 haben sich verändert. Der für Bit 1 zuständige 2-Bit Zähler ist jetzt 2 und nicht mehr 3. Der nächste Timer-Interrupt kommt. Die Taste ist immer
in der der Pin möglicherweise 2 bis 3 mal zwischen gedrückt und nicht gedrückt wechselt, weil die Taste prellt. Und genau dieses gilt es auszufiltern - das ist der Zweck der ganzen Übung. Damit eine Taste tatsächlich als gedrückt gilt, muss sie mindestens 4 mal hintereinander als gedrückt vorgefunden
-
Thread
Tasterabfrage
Sofern der Taster nicht prellt, und er einen Pull-Down hat und du ihn auf VCC ziehst möglicher weise. Vorrausgesetzt die Abfrage findet kontinuierlich statt (z.b. in einer while-Schleife)
Wir haben solche Abfragen immer in in ein Interrupt mit ca. 20-50ms (abhängig vom Taster) gepackt. Im Interrupt lauft dann die Routine von Karl Heinz Buchegger. Ein wenig experimentieren mit der Interrupt Zeit und dein Code sollte laufen.