Hallo zusammen, ich möchte an meinen µC einen Taster entprellt anschließen. Da der Taster auf einen PinChange Interrupt geht und ich noch einen anderen Interrupt (Timer) laufen habe, möchte/muss ich den Taster hardwareseitig entprellen. Mangels Bauteilen für die anderen Varianten habe ich mich für diesen hier entschieden: http://www.mikrocontroller.net/articles/Datei:WechselEntprellC.PNG Im Gegensatz zum verlinkten Schaltplan verwende ich einen Taster und einen 100nF Kerko. Als R1 habe ich 1kOhm eingesetzt. Ich hatte nun allerdings Bedenken, ob ich mir da nicht den Eingang meines µC zerschieße?! In dem Moment, in dem sich der Kondensator entläd, habe ich in Richtung Masse 1kOhm "im Weg", in Richtung µC nur den Innenwiderstand. Entläd sich dann nicht der Kondensator mit voller Geschwindigkeit über den µC? Der verträgt ja am Port nicht allzu viel... Liebe Grüße Jonas
Jonas R. schrieb: > ich noch einen anderen > Interrupt (Timer) laufen habe, möchte/muss ich den Taster hardwareseitig > entprellen. Gerade wenn man eh schon einen Timer laufen hat, empfiehlt sich eine SW-Entprellung. Und der Timerinterrupt freut sich darüber, die etwa 10 Zeilen noch mitmachen zu dürfen.
Die hardware Entprellung ist völlig OK. Den Innenwiderstand des MC von einigen MOhm kannst du vernachlässigen. Der Kondensator wird über 1K geladen und entladen. Wen du allerdings keinen Umschalttaster hast, sonder nur einen Eintaster, solltest du noch einen 1K nach Masse spendieren.
brauchst du nicht andere Bauteilwerte? t=RC=100µs nach 100µs ist der Pegel also auf 60%. Dann muss dein Prellen also eine deutlich kleinere Zeit haben. Und der Schalter wird mit den Jahren schlechter!
Peter Schulten schrieb: > solltest du noch einen 1K nach Masse > spendieren. da ist was dran...^^ Ich hab die Widerstände nochmal etwas umgesetzt, so müsste es dann fast noch besser passen... (s. Anhang) @Peter hm, ok... da habe ich wohl etwas zu schnell gedacht ;) vllt. probier ichs mit dem Timer irgendwann mal aus. @rava Dem kann ich folgen... Aber warum soll das Problem beim Wechselschalter nicht bestehen...?! Und mein Kondesator ist ja bereits größer als der Vorgeschlagene... Oder gingen die 20nF noch von einer Schaltung ohne Widerstand aus?? LG
Warum überhaupt per Hardware entprellen?????? Pin-Change-Interrupt, wenn ich das schon lese, dann kommen mir die größten Bedenken, ob das Design halbwegs vernüftig ist.
Jonas R. schrieb: > Ich hab die Widerstände nochmal etwas umgesetzt, so müsste es dann fast > noch besser passen... (s. Anhang) Und Du glaubst im Ernst, dass die Schaltung funktioniert? Womöglich noch 0,1% Widerstände? Ich weiß ja nicht, welchen µC Du verwendest. Mit einem AVR klappt das nicht. Jonas R. schrieb: > vllt. probier ichs mit dem Timer irgendwann mal aus. Mach's am besten sofort.
spontan schrieb: > Pin-Change-Interrupt, wenn ich das schon lese, dann kommen mir die > größten Bedenken, ob das Design halbwegs vernüftig ist. Da ich ich Dich trösten. Es geht. Beitrag "EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."
m.n. schrieb: > Und Du glaubst im Ernst, dass die Schaltung funktioniert? Womöglich noch > 0,1% Widerstände? > Ich weiß ja nicht, welchen µC Du verwendest. Mit einem AVR klappt das > nicht. Diese Forenfreundlichkeit ist wieder umwerfend.... Wie du vielleicht bemerkt hast, habe ich bisher tatsächlich gedacht, das könnte funktionieren... Da dies anscheinend nicht so ist, wärst du bitte so freundlich mir zu erklären warum?
spontan schrieb: > Pin-Change-Interrupt, wenn ich das schon lese, dann kommen mir die > größten Bedenken, ob das Design halbwegs vernüftig ist. Was hat denn die Verwendung des PCINT mit dem Design zu tun?? Der Grund dafür ist ganz einfach... Auf PortD, auf dem die Externen Interrupts sitzen ist bereits ein LCD angeschlossen, das mit 8bit angesteuert wird, und dementsprechend den gesamten Port belegt. (Und jetzt kommt mir bitte nicht mit "mach doch 4bit ans LCD!") PS: Ich verwende einen ATmega88PA
Also... mittlerweile ist mir nun der gewaltige Denkfehler selbst aufgefallen. Ich habe den Widerstand nun wieder zurück gesetzt, so sollte es aber wieder funktionieren, oder? Eine einfache, kurze Erklärung wäre jedoch deutlich netter gewesen. Wenn das hier jedes Mal so läuft, dann traut man sich als einfacher Bastler bald gar nicht mehr hier irgendetwas zu fragen...
Jonas R. schrieb: > ich möchte an meinen µC einen Taster entprellt anschließen. Ein RS-Kippglied wie z.B. im 4013 mit R und S (Reset, Set) ist ganz nützlich, oder zwei kreuzrückgekoppelte NAND- oder NOR-Gates (4001, 4011), absolut zuverlässigst. Allerdings braucht man dafür einen Taster mit drei Polen, das ist etwas lästig, oder zwei Taster für jeweils ein und aus.
Ich würde die Zeitkonstante wenigstens einige ms lang machen, z.B. 10k/1µF.
Mangels Kondensatoren bin ich jetzt auf zwei 470µF Elkos in Reihe und 1k Widerstände umgestiegen...^^ Damit müsste ich ungefähr bei 235ms liegen... Das reicht :D Danke Peter! ;) Thema erledigt.
Jonas R. schrieb: > Der Grund dafür ist ganz einfach... ... aber unverständlich. Was willst du denn erreichen? Den µC aufwecken? dafür kannst du ja den Interrupt nutzen (vor dem Schlafen legen aktivieren, nach Aufwachen deaktivieren) und ansonsten "ganz normal" in Software entprellen.
Nein. Idee war so eine Art Uhr auf dem LCD anzeigen zu lassen. Der Taster ist als Resetknopf vorgesehen, dabei will ich jedoch nicht gleich den ganzen Controller Resetten, sondern nur meine Variablen.
Jonas R. schrieb: > Nein. Idee war so eine Art Uhr auf dem LCD anzeigen zu lassen. Der > Taster ist als Resetknopf vorgesehen, dabei will ich jedoch nicht gleich > den ganzen Controller Resetten, sondern nur meine Variablen. Dann brauchst Du erst recht keinen IRQ und Hardwareentprellung. Du hast sicherlich sowieso Taster um die Uhr einzustellen, die dann mit PeDas Routine entprellen und einen zusätzlichen Taster (eventuell versenkt) für den Reset Deiner Uhr einbauen. Spart viel Arbeit/Bauteile und ist sinnvoller.
Es handelt sich hier um einen ganz einfachen Breadboard-Aufbau. Mein eigentliches Ziel ist kein perfektes großes Projekt, sondern ich bin dabei selbst den Umgang mit den Mikrocontrollern auszuprobieren und zu lernen. Der Aufbau besteht aus dem µC, einem LCD und dem Taster. (natürlich jew. incl. Grundbeschaltung) Das Thema ist von meiner Seite erledigt, daher werde ich jetzt keine Fragen mehr beantworten, da diese erfahrungsgemäß in verschiedensten "geht doch viel besser"-Vorschlägen enden. Ich bitte um Verständnis. PS: Tut mir leid, wenn das vllt etwas pampig ist, aber mir geht es gewaltig auf den Keks, wenn ich eine Frage stelle, und dann statt die Frage zu beantworten erst mal alles außenherum schlecht gemacht wird.
Jonas R. schrieb: > wenn ich eine Frage stelle, und dann statt die Frage zu > beantworten erst mal alles außenherum schlecht gemacht wird. Hier wird nix schlecht gemacht. Es wird nur auf Jonas R. schrieb: > sondern ich bin > dabei selbst den Umgang mit den Mikrocontrollern auszuprobieren und zu > lernen. eingegangen. Aber wenn du mit aller Gewalt nicht lernen willst sondern nach wie vor deine Sichtweise durchsetzen willst, dann bitte, niemand zwingt dich, aber wenn du wirklich lernen wollen würdest, würdest du dir die Hinweise mit der Software-Entprellung wenigstens mal ansehen und feststellen, das geht viel einfacher. Dennis
Hi Sorry, wenn ich mich erst nach Abschluss des Themas einmische. Jonas, wenn du in den Foren Fragen stellst, ist es ganz normal, das du nicht immer ganz gezielte Antworten bekommst. Das hat nichts mit Besserwisserei zu tun, aber wenn du eine Frage bezüglich Widerstands/ Kondensatorbeschaltung stellst, zeigt es, das dir das Wissen in der Elektronik fehlt. Natürlich lassen sich mit Lade- und Entladekurven aufzeigen, wann dein Eingang einen stabilen Status hat und das Gezappel des Pegels beim Schaltvorgang vorbei ist. Aber das setzt dann wiederum voraus, das du dem folgen kannst. Und da geht es mir auch wie anderen, das ich es nicht weiß, wer auf der anderen Seite der Strippe sitzt und schon gar nicht weiß ich um den Kenntnisstand der Materie beim Gegenüber. Außerdem, und mir klappern auch immer gleich die Liddeckel, Schalter mit Interrupt...., so was geht gar nicht. Klar, zum Üben macht es vielleicht Sinn, aber sonst nicht. Schon gar nicht, wenn ich einen sowieso wachen Controller habe. Da reicht Polling und das ist auch völlig ausreichend. So schnell kannst du einen Kontakt gar nicht betätigen, das es der Controller "verschläft". Es ist halt dann nur ein Hinweis an den "Laien" auf der anderen Erdkugel, das dies ein Designfehler ist und so in der Regel nicht gemacht wird. Nimm's halt nicht persönlich. Niemand will dir deine Art zu lernen kaputtreden, aber die Hinweise sind gut gemeint. Stell dir vor, wir würden Tastaturabfragen mit Interrupt gutheißen. Das lesen auch andere Anfänger und schon sind sie auf einem falschen Gaul aufgesessen. Daher wird bei einer so gestellten Frage immer der Hinweis kommen, Kontakte nicht in einer ISR zu erfassen. Irgendwann einmal wirst du auch mal eine Frage beantworten und dann vermutlich auch deine Weißheit weitergeben.... Schönes WE Gruß oldmax
Vielleicht sollte man auch die Gründe noch genauer ausführen, weshalb der Taster nicht am Int hängen sollte. Habe ich mich beim ersten Mal als ich das gelesen habe auch gefragt: warum eigentlich nicht. Wenn ich den frei habe und es so machen möchte könnte ich es ja machen, technisch gibt's ja nix dagegen. Aber der INT ist eine so wertvolle Resource, der in anderen Aufgaben viel passender ist, dass ich beim Design so etwas gar nicht erst anfangen sollte. Lieber habe ich einen Timer Tick (Timer INT) jede Millisekunde, der auch mal nach dem Taster / den Tastern kuckt als den INT dafür zu verwenden, denn der sollte lieber auf Dinge reagieren, wo ich wirklich schnell sein muss (auf eine Flanke eines anderen Bausteins reagieren, z.B. wenn ein I2C-Transfer reinkommt o.ä.) und das auch viel häufiger als ein Taster jemals betätigt wird.
hmmm jetzt muss ich mich wohl doch nochmals melden... Danke Martin... Das passt ganz gut was du sagst. Ich nehme auch gerne Kritik an, und Vorschläge, wie es besser wäre. Allerdings dann bitte mit kurzer Erklärung (Danke Conny!) und eben einer Antwort auf die eigentliche Frage. Was mich eben so gestört hat, war dieses "Falsch" ohne kurze Info dazu. Und so blöd der am anderen Ende auch sein möge. Eine Begründung, die der andere evtl. nicht auf Anhieb versteht, ist sinnvoller, als nur "schwachsinn, machs anders." Wie gesagt, ich werde mir die Softwaregeschichte wohl demnächst mal anschauen müssen, habe im Moment aber die Hardwarevariante aufgebaut. LG Jonas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.