www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "zwei Stufen LEDs"


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe einen externen Interrupt. Wenn ich den Pushbutton druecke
sollen meine LEDsihren Zustand aendern (an/aus). Das funktioniert auch
ganz gut, aber es geschieht nicht sofort, sondern in zwei Stufen:
zB wenn alle LEDs an sind:
Ich druecke den Interrupt-> die LEDs leuchten schwaecher (ca
1Sekunde)->danach gehen sie ganz aus.

umgekehrt genau so.

Wenn ich die LEDs einfach ansteuere geht das fix: direkt voll an oder
voll aus. In der Interruptservice-Routine aendere ich einfach den
Status der Bits. Warum sind geht das da nur so langsam und in zwei
Stufen?

...verwende einen ATMega16.

mg,
Johannes

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weil dein Taster prellt!

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha!

und was nun? wie entprell ich den nun? in SW oder in HW(reicht da ein
TP mit Kondensator und Wiederstand? welche Werte?)?

mg,
Johannes

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mach das per Sofware. (weniger Aufwand)
Dazu gibt es in der Codesammlung nette Beispiele...
Und Tasten fragt man eher nicht per Interrupt ab, solange der
Controller nichts wichtigers zutun hat.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tasten an normale Portpins anschließen, und zwar nach Masse. Den
internen PullUp des betreffenden Portpins aktivieren. Einen Timer
zyklisch (z.B. alle 10ms) den Pin testen lassen (über
Overflow-Interrupt und eine kleine ISR). Ein Flag anlegen. Taster
mindestens 2x lesen und Flag entsprechend setzen, wenn beide Male der
gleiche Pegel gelesen wird, Schaltvorgang auslösen, ansonsten weiter
abfragen, bis sie 2x denselben Wert hat. Das funktioniert dann für
beide Schaltzustände an und aus gleich gut.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@TravelRec: Danke fuer deinen Tip! funktioniert prima

mg,
Johannes

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön! Frohen 4. Advent!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.