-
Thread
Taster entprellen
gerade an meinem Wecker-Projekt, die Uhrzeit funktioniert schon, jetzt möchte ich mit Hilfe von Tastern eine Weckzeit einstellen. Aber ich habe gelesen, dass ein Taster prellt und ich würde gerne das Signal ohne prellen auswerten. Ich habe mir überlegt, dass ich 40 mal hintereinander den Taster auslese
C++ oder Assemblembler ? Hängt dein taster an einem interrupt ? So wie du das schilderst nehme ich fast an, dass du asm verwendest. In Prinzip ist das so wie du es machen willst schon richtig. MfG Axos
-
Thread
Genau messen wie lange Relaiskontakt geschlossen war.
auf den Arduino zu legen und dann mit dem µC zu messen. Dein delay(1500) ist aber wenn noch Interrupts vorhanden sind eh nicht genau.
vorschreibt, dass "ein Kontakt" für 1-2 Sekunden zu schließen ist, dann ist damit oft ein billiger Taster gemeint, der je nach Qualität sicher noch mehr prellt als ein Relais.
-
Thread
Debounce von Tasten mit dem Candidate-Pattern (Platformunabhängig, Theorie)
- RC-Filter bei sehr einfachen Schaltungen ohne Softwarelogik - Timer-Debounce bei einzelnen Tastern mit Interrupts - Integrator-Methoden bei stark verrauschten Signalen In vielen Mikrocontroller-Anwendungen mit zyklischer Eingabeerfassung stellt das Candidate-Pattern jedoch eine sehr einfache
Zustandsänderung bearbeitet wird. --- ## 🟦 **Level 17: Debounce als „Gedicht“** [pre] Ein Taster prellt, die Zeit hält still, erst wenn er schweigt, weiß ich, was er will. [/pre] --- ## 🟩 Fazit **Man kann Abstraktion** so weit treiben, dass sie komplett lächerlich wird. Und genau
-
Thread
Delay in Interrupt - routine
HI Mein Interrupt 0 ist durch ein Taster gesteuert. Ich möchte die variable "press" inkrementieren, wenn der Taster nur kurz gedrückt ist. Wenn der Taster jedoch 2sec lang gedrückt wurde, soll auf dem Port
> also das mit dem negierten Interrupt pack ich nicht ganz? Wie ich oben schon mal schrob: Du registrierst den Interrupt auf der jeweils entgegengesetzten Flanke. Wenn also anfangs die H->L Flanke den Interrupt ausgelöst hat (Taster
-
Thread
Rotary Encoder machen was sie wollen?!
erklärt, wie er sich die Sache erklärt. Und wenn dein Programm nachweislich so tut, als ob der Taster prellt, dann ist entweder dein Programm fehlerhaft, oder der Taster prellt. Ich sach mal, beides. Oliver
erklärt, wie er sich die Sache erklärt. > > Und wenn dein Programm nachweislich so tut, als ob der Taster prellt, > dann ist entweder dein Programm fehlerhaft, oder der Taster prellt. > > Ich sach mal, beides. > > Oliver Es sind natürlich nicht nur Widerstände, deshalb das "etc.". Auf der Rückseite
-
Thread
DCF77-Modul von Pollin
glatte 5µA) ohnehin ein Schuss ins Knie. Rechne damit, dass die ansteigende Flanke möglicherweise prellt. Also Entprellung wie bei Taster.
> Besser: Timer auf beispielsweise 10ms Raster programmieren und in dessen > Interrupt den Eingang pollen. Dann kann man ihn ja gleich mit den Tastern zusammen per PeDa-Entprellung behandeln... ;-) ...
-
Thread
_delay_ms() innerhalb einer ISR
Der Interrupt wird durch einen Taster generiert. Es stimmt schon dass solche Taster öfter zweimal schalten wenn sie nur einmal sollten. Das müsste aber hier egal sein oder? Wenn ich den Taster bewusst 3 mal drücke
Leo schrieb im Beitrag #4622312: > Der Interrupt wird durch einen Taster generiert. Seufz. War ja klar. Man kann hier im Forum millionenmal erklären, dass man Taster nicht mit Interrupts auswertet. Das hat nur zur Folge, das der Eine-Million-und-Einte
-
Thread
Frage zu einer Ampelschaltung mit Interrupt
der Taster und löst einen zweiten Interrupt aus. So ein Schaltung mit Interrupt zu machen ist schlicht Unsinn. Das macht man dreimal besser mit einer Abfrage in einer laaaaaaangsamen Hauptschleife. Da kann
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 dem ersten interrupt anwenden
-
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
Wenn ich 3mal auf den Schalter gedrückt habe.
Adrian Figueroa schrieb im Beitrag #3026040: > ich kann doch nicht die ganze zeit meine taster abfragen, während etwas > anderes gemacht wird, der taster aber trotzdem eine funktion haben > soll... Deswegen macht man das nebenbei in einem Timer Interrupt. Interrupts und Taster sind idr
keine Menge zusammen. Man nimmt z.b. einen Timer interrupt alle 50 ms, wenn der Taster in diesem Interrupt 3 mal hintereinander gedrückt ist kann man davon ausgehen, dass er auch wirklich gedrückt ist und nicht prellt. Dann setzt du ein Flag das du dann
-
Thread
LED mit Interrupt umschalten
) Interrupts, weil er prellt. Daß Taster nicht per (flankengetriggertem) Interrupt ausgewertet werden dürfen, weiss jedes Kind. 2. Wenn ein Interrupt auf PinChange ausgelöst wird (durch irgendien andere Quelle
diese zu verlinken. Vielleicht stehen da irgendwelche Erläuterungen. Ich würde erstmal ohne Interrupt versuchen, eine LED zum Leuchten zu bringen. Also Taste ein-> LED ein, Taste aus -> LED aus.
-
Thread
Externer Interrupt entprellen?!
aufgefallen dass der Taster prellt...und daher zählt das Programm manchmal auch die Variable um 2 oder 3 hoch. Aber die Variable soll wirklich nur EINMAL hochzählen, wenn ich den Taster betätige. Allerdings weis ich nicht
Overflow-Zeit braucht (z.B. 1ms) das man die Entprellung da einbaut. Noch was anderes: Ich hab z.B. einen Taster mit Schließer und Öffner, die beide einen Interrupt auslösen. Die Interrupts schalten sich dann selbst aus und den anderen ein. So funktioniert das Sehr gut, wenn man die Interrupts frei hat und die
-
Thread
Schrittmotor mit Atmega 8 warum geht PD0 als Eingang nicht?
> Was hat Delay damit zu tun? damit dreht er der Motor schnell oder > langsam. So lange die Taste noch prellt auch mehrfach mit Pause zwischendurch ;)
solange die Taste gedrückt ist/prellt.
-
Thread
Ablauf Taster-Abfrage
bedient oder was auch immer. Wenn der Controller jetzt die ganze Zeit darauf warten würde, was welche Taste macht, wäre das ziemlich uneffektiv. Bei grösseren Projekten macht man es dann sowieso so, dass die Tasten im Rahmen eines Timer-Interrupts abgefragt werden.
@Rahul: Mit welcher Timer-Interrupt Zeit fragt man die Tasten während dem Hauptprogramm ab, sodass man nichts verpasst? (@HanneS: ich meine nicht die Entprellzeit)
-
Thread
Menüsteuerung mit zwei Tasten (Up/Down) in Assembler
> wie man ein kleines up/down Menü mittels Interuptsteuerung in Assembler > hin bekommt ? Interrupt für Tasten ist die schlechteste Lösung... Bei dem Betreff > _Menüsteuerung mit zwei Tasten (Up/Down) in Assembler_ habe ich ein Verständnisproblem. Denn mit nur 2 Tasten stelle ich mir die Bedienung
sofort als 'Taster geschlossen' werten, sondern einfach mal eine gewisse Zeit abwarten und nachsehen, was da so am Eingang passiert. Ändert sich der Pegel in diesem Zeitraum wieder, dann prellt die Taste immer noch.
-
Thread
Interrupts vor Aktivierung verwerfen
keine Taster o.ä. an den Interrupt-Pins hängen?
Mit "GIFR = 255" löschst Du alle Flags in GIFR. Tasten an Interrupts gehört sich nicht. Und Funktionen, die 2 Sekunden dauern, in einer ISR aufzurufen gehört sich noch viel weniger...
-
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
XMega Compare Timer
Man muss den Port konfigurieren, dass er auf gewisse Ereignisse > reagiert! > > z.B. eine Taster (steigende oder fallende Flanke) Der Interrupt reagiert auf beide Flanken, deshalb die Abfrage. Wenn der Schalter eingeschaltet wird, soll es eine Zeitverzögerung geben, wenn der Schalter abgeschaltet
ala42 schrieb im Beitrag #1807966: > Wenn der Schalter prellt, wird sich die Logik sicherlich anders > verhalten als Du das erwartest. Danke für die Antwort. Dann müsste der interrupt aber von vorne beginnen und die Zeitverzögerung würde sich in die länge
-
Thread
Programm hängt sich auf (Entprellen?)
sonst nichts Anderes im Programm passiert. Ich benutze einen PIC 16F876 mit nem 4MHz Quarz. Da Interrupts und Timer besetzt sind, polle ich die Tastenabfrage, was ich folgendermaßen realisiert habe: In einer kleinen Schleife wird nachgeschaut, ob eine Taste gedrückt wurde. Die Schleife zählt rückwärts. Gegenläufig läuft ein weiterer Zähler. Ist während der ganzen Schleifenabfrage eine Taste dauerhaft gedrückt worden, so erreicht der zweite Zähler den Anfangswert des Schleifenzählers. (Prellt die Taste, wird der zweite Zähler wieder auf Null gesetzt.) Somit gilt die Taste als gedrückt,
-
Thread
AVR8ASM-Projekte
word(300/ KEYMGR_CYCLE_TIME +.5) KeyMgr.LongPressTime = word(800/ KEYMGR_CYCLE_TIME +.5) KeyMgr.InterruptMode = 1 KeyMgr.Init(KEY_PORT, KEYMGR_MASK, KEYMGR_REPEAT_MASK, 0) ' run on timer interrupt WDT_Init() endpart avr.Interrupts.Enable() do // Taster gedrückt if KeyMgr.KeyPress(SW1_MASK
Bernd S. schrieb im Beitrag #7489594: > Demnächst will ich einen Motor-Encoder testen, da ist per Interrupt > Pflicht. Was genau hast du nicht verstanden. Alles ? Ja, man kann Drehgeber auch mit Interrupts auswerten wenn man ein paar Millisekunden (Prellzeit) nach dem Interrupt sampelt. Aber man
-
Thread
erstes C-Programm läuft nicht am AVR
Array counter[] notwendig ist. Das Programm wird zyklisch über die ISR ausgeführt und scannt alle Tasten (in meinem Falle gerade nur 2) Prellt die Taste nicht wird der Zähler bis auf 5 erhöht, und schaltet in diesem falle eine stelle des Arrays outputs[] auf eins was signalisiert das die Taste ohne Prellen gedrückt wurde. Prellt die Taste wird das der counter zurückgesetzt. Die Funktion blinken ist wie der name schon sagt für das Blinken der LED´s verantwortlich. Falls es noch fragen geben sollte kann ich das gerne noch
-
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
ESP8266 Interrupt
jetzt gerade mal etwas geschrieben nur weiß ich nicht ob es etwas bringen würde das Programm (UpdateTaster) per Interrupt aufzurufen?
gerade mal etwas geschrieben nur weiß ich nicht > ob es > etwas bringen würde das Programm (UpdateTaster) per Interrupt > aufzurufen? Warteschleifen in ISR sind böse. Wenn zu lang, macht der Watchdog sogar einen Reset. Dein versucht, Tastendrücke per ISR zu erfassen, ist schon problematisch. Das
-
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
Atmega8 und C - Eine Frage zur Programmgestaltung
Oliver J. schrieb im Beitrag #2863405: > Wozu das denn? Das macht man am einfachsten so: > if (Taste_gedueckt()) { > mach_was(); > } Das gehoppel in mach_was() möchte ich nicht sehen, wenn die Taste ein bisschen prellt.
10ms einen Interrupt bringt. Es ist doch kein Problem, in diesem Interrupt auch mit zu schauen, ob eine Taste gedrückt wurde. Wie das effizient aussehen kann gibts hier genügend Codebeispiele, einfach mal nach Entprellung
-
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
Frage zu Interrupt - Arduino
attachInterrupt(digitalPinToInterrupt(TasterPin), LCD_Seite_1, CHANGE); } loop() { if(LCD_Menu == 0) { // zeige am Display Seite_0 an } } //----------------------------- Interrupt
mal gesetzt. vielleicht noch mit Pullup wenn es keinen Pullwiderstand extern gibt pinMode(TasterPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(TasterPin), LCD_Seite_1, FALLING);
-
Thread
Interrupt Bit Löschen
Taster verwende (Disable Interrupt bzw. Enable Interrupt Befehle sind am Anfang und am Ende der Interruptrutine), dann setzt er dieses Interrupt Bit. Sobald ich dann die Interruptrutine verlasse, also
betreffende Flag wird übrigens durch den > Interrupt selbst gelöscht, ...aber auch sofort wieder gesetzt, wenn der Taster prellt, was dann eben dazu führt, dass der Interrupt Handler nach Verlassen direkt nochmal ausgeführt wird. > da muß man
-
Thread
Interrupt löst ungewollt aus
Bleiben da Taster drann? Wenn ja: Taster liest man nicht mit Interrupts ein. Schau dir den Atrikel [[Entprellung]] im Wiki an. Dort findest du genügend Ideen, wie man Tasten zuverlässig einliest. Taster schliesst
ein völlig unnötiges und nutzloses Warten in einer ISR. Nur hilft dir das nichts, denn wenn der Taster prellt, wird der nächste Interrupt vom prellenden Taster angestossen. Ob du nun in der ISR wartest oder nicht. [[Entprellung]] Und definier deine Ausgabepuffer nicht so knapp!
-
Thread
Taster mit zu wenig Wetting Current
Zerlegen will ich dieses /3D Puzzle/ auf keinen Fall! Also einen kleinen Kondensator an den Taster. Nur hab ich so gar keine Erfahrung/Einschätzung wie dimensionieren, 10nF...100nF oder sogar noch mehr? Hier der 0815 Taster von /Pollin/. https://www.pollin.de/p/miniatur-drucktaster-420009
, spart CPU Ressourcen und hält den Code schlank. Ein Taster kann dann direkt einen Interrupt auslösen und bei längeren Zuleitungen zum Taster ist der Eingang der Schaltung gegen Störspannungen besser geschützt. Es kostet natürlich etwas mehr, doch das spielt
-
Thread
INT0 Endlosschleife
der Interrupt sauber abgearbeitet wird. Wenn ich den Taster jedoch länger (1-2 Sekunden) gedrückt halte, kehrt er nicht mehr aus der Routine zurück. Ich programmiere in C. Was kann ich dagegen machen?
Habe mir jetzt mal ein paar werte über die uart ausgelesen. Wie es aussieht, arbeitet er den Interrupt ordentlich ab. Kehrt aber nicht wieder ins Hauptprogramm zurück. Anmerkung: der Interrupt wird bei mir, solange ich den taster gedrückt halte, ständig abgearbeitet (wiederholung)
-
Thread
Taster abfragen? STK500
DataDirRegister auf Eingang von PORTB for(;;) { if (PORTB==0x7F) //wenn der "linke"Taster gedrückt wird, dann.. { PORTA=0xA5; } } } __________ es leuchet aber leider nüx. Ich habe mir schon überlegt, ob es denn daran liegt, dass die Taste möglicherweise prellt (mech. Schalter
Durchlauf // fertig ist TIMSK |= (1<<TOIE0); // Für den Timer 0 den Interrupt bei Overflow erlauben sei(); // Interrupts global freigeben for(;;) { if (PINB == 0x01) // wenn Taster1 gedrückt wird, dann.... { TCCR0 = 0x00;
-
Thread
ATmega128 und die Interrupts
dazugehörige interrupt ausgelöst wird und ich kann den interrupt immer wieder auslösen. drücke ich jedoch einen andren taster im nachhinein passiert nichts. nur wenn ich den taster gedrückt halte kann ich einen andren
Folgende Punkte solltest du noch beachten: Jeder Taster prellt, daher z.b. mittels Software entprellen. Durch das Prellen wird das entsprechende Flag erneut gesetzt. Daher vor Rückkehr aus der Interrupt-Routine das entsprechende Flag zurücksetzen. Während
-
Thread
Taster Entprellen von Peter Dannegger
Jetzt nur mal damit ich das verstehe. Bei mir ist das so , dass der Taster einen Interrupt auslöst der eine LED anmacht wenn aber schon ein , dann eben aus. Wenn also Taster betätigt wird und der prellt und den Interrupt auslöst,(mehrere male anstatt einmal) nutzt es doch
mit extra Zähler sind immer aufwändiger. Direkten Tasten-Interrupt macht man nicht, weil: - nicht so viele ExtInts vorhanden, bei PinChange Interrupt der µC auf jeden Mist regiert - Tasten zu langsam sind, um einen Interrupt zu rechtfertigen - Störungen
-
Thread
Externer Interrupt INT0 und INT1 mit internen PullUps
Hallo aspire, das ist doch kein Problem, sondern dein Unwissen, wie man Taster - die immer PRELLEN - abfragt. Taster direkt über Interrupts gehören nicht zusammen ! .
) { ... // config LED LED0_DDR = 1; LED1_DDR = 1; LED0 = 0; LED1 = 0; //INTERRUPT (MCUCR S.33, GICR S.49) TASTER0 = 1; // Interne PullUps setzen TASTER1 = 1; // Interne PullUps setzen TASTER0_DDR = 0; // Pin auf Eingang TASTER1_DDR = 0; // Pin auf Eingang
-
Thread
MSP430F1232 + Interrupt Port 1
Hi Leute! Ich möchte am Port 1 auf dem auch das JTAG interface verbaut ist eine Interrupt-abfrage machen. Hab dafür auch den Code geschrieben und der funktioniert. Jedoch funktioniert er immer nur für einen Taster. Wenn ich jetzt im Interrupt 2 Taster abfragen will dann spielt das
es lösen beide taster einen interrupt aus. Sie sind auf falling edge geschalten, was mit den tastern übereinstimmt. Komischerweiße kommt der interrupt an bit7 nur dann wenn ich drücke und löst die richtige aktion aus
-
Thread
Taste in ISR entprellen
Hallo, in diesem Forum gibt es ja etliche Varianten zur Entprellung von Tasten. Dabei wird (fast) immer auch erwähnt, eine Tasten Entprellung NICHT in einer ISR durchzuführen. Meine Frage ist warum eigentlich nicht? Ich möchte z.B. eine Taste per INT0 entprellen und damit
Entprellung muß man für das /Loslassen/ der Taste machen. Denn erst wenn die Taste das Prellen nach dem Loslassen beendet hat, darf man den Interrupt zum Aufwachen aus dem Schlaf wieder scharf machen.
-
Thread
viele Tasten an MC? Frage zu Schaltungsmöglichkeiten
>würde ich gerne per Interrupt erfahren.. Ist nicht unbedingt zu raten, da Tasten prellen. Nimm nen Timerinterrupt und Taste zB alle 10ms ab.
Zum Aufwachen sollte es gehen... Genau so dachte ich es. Zum Aufwachen reicht ein Ping (ob der prellt oder nicht ist unerheblich). Bis ich dann die Register durchgeschoben habe, um alle Tasten zu prüfen, ist das Prellen der Taster schon lange vorbei (falls nicht, könnte ich die Tasten auch eine Zeitscheibe
-
Thread
[AVR]Fragen zur C Programmierung (Timer / multiplexing)
Also das hier: [c] taster_neu = PINB; taster_flags = taster_alt & ~taster_neu; taster_alt = taster_neu; [/c] In einen Timer-Interrupt?
Daniel Herrmann wrote: > Also das hier: > > [c] > taster_neu = PINB; > taster_flags = taster_alt & ~taster_neu; > taster_alt = taster_neu; > [/c] > > In einen Timer-Interrupt? Schon besser!
-
Thread
Mikrocontrollers Eingang bestimmten Impuls abfragen
>Kann mir jemand einen groben Programmablauf in c zeigen. timeoutTaster++; if(timeoutTaster > TIMEOUT) schalteausgang(); SCNR ;)
! Der Taster prellt und die Leitung zum Taster kann sich Störungen einfangen. Man braucht eine Entprellsoftware, um den Taster abzufragen. Den Interrupt (Pin-Change-Interrupt) könnte man bestenfalls bei Batteriebetrieb
-
Thread
Externer Interrupt
Hallo, ich arbeite gerade den AVR-GCC-Tutorial durch. Bei den Interrupts komme ich nun nicht mehr weiter. Ich hab versucht in ein bereits bestehendes (funktionierendes) Programm einen externen Interrupt einzubauen. Ein Lauflicht soll dabei vom Interrupt unterbrochen werden
> mehrmals nacheinander. Hmm ja irgendwie logisch...aber ich dachte es gäbe Probleme wenn Interrupts auftreten bevor der letzte Interrupt abgearbeitet wurde? Aber wenn ich es mir jetzt genau überlege werden dann wohl einfach Interrupts übersprungen, was in diesem Fall egal wäre. Aber ich würde meinen
-
Thread
EEPROM treibt mich in den Wahnsinn
Eine Taste macht man NIE mit einem Interrupt. Denn die Taste kann und wird prellen. Das sind noch ein paar kontakte in ms-Bereich.
Zwei von Drei schrieb im Beitrag #2710276: > Eine Taste macht man NIE mit einem Interrupt. Denn die Taste kann und > wird prellen. Das sind noch ein paar kontakte in ms-Bereich. Geil. So einen Muell habe ich schon lange nicht mehr gelesen.
-
Thread
ATmega Power-Down und Wakeup mit INT0
Eine Taste prellt beim Drücken und beim Loslassen. Ob der Interrupt auf Pegel oder welche Flanke reagiert, kann man so nicht erkennen. Du brauchst einen sauberen Taktgeber, z.B. einen 2. µC oder zur Not mit
> Mal ganz blöd gefragt: wie erzeugt man einen Rising Interrupt > ohne Level davor und danach? Die Frage verstehe ich nicht - aber hier mein Vorgehen: INT0 (=PD2) mit externem Pull-down, Taster zieht auf high. Programm lässt LED langsam blinken, ein paar
-
Thread
gestörter µC
hife zu finden: Also folgendes Problem krieg ich einfach nicht in den Griff: Lichtsteuerung; Taster an 230V; Eingänge vom µC Optoentkoppelt; µC SX28 mit 4MHZ; Nulldurchgangsdedektor von der Netzspannung liefert Interrupt für µC; interne Clock "zerteilt" Halbwellen in 250µs Abschnitte ( eine Halbwelle
Hm, wie sehen die Fehlfunktionen denn aus? Kann es vielleicht sein das der Taster prellt? Verwendest Du bei den 1.5m auch ein längeres Kabel? Wenn ja kann es durch die größere Kapazität, auch wenn es nicht viel ist, passieren das das Prellen geglättet wird. Probiers mal mit nem
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
, > dass der Schließer früh genug öffnet, prellt die Taste nicht! Unfug. Die Tasten, erst recht bei dem Alter, prellen mechanisch. Wenn man das weghaben will, muss man es in Software entprellen. In Hardware geht es hier nicht, da die Tasten an
Günter K. schrieb im Beitrag #7900759: > Denn der Taster prellt nicht! Unglaubwürdig.
-
Thread
ISR wird nach einem Pinchange Interrupt 2x ausgeführt?
. G. schrieb im Beitrag #2581281: > Hat jemand einen Tip was da sein könnte? Ja, Deine (jede) Taste prellt. Deshalb Tasten nie mit einem externen Interrupt abfragen! Sondern mit einem Timerinterrupt entprellen. Peter
habe mir deine Komfortroutine etwas angesehen, aber das ist natürlich ein overkill für eine einzige Taste welche am PCINT0 hängt. Hast du ein Beispiel mit einem Timer Interrupt in C für eine Taste?
-
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
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
Taster,Atmega 8
Hallo Vielleicht geht die LED ganz schnell an/aus/an/aus, weil dein Taster prellt?? Gruß Joachim
nicht ganz so schlimm wie beim ersten Programm, aber immer noch nicht perfekt:(. Kann man einen Taster überhaupt mit der Polling-Methode gescheit toogeln oder ist dies nur mit Interrupts perfekt möglich? .nolist .include "m8def.inc" .list ldi r16,0x01 out DDRD, r16 ldi r16
-
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