mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taser gedrückt LED soll leuchten


Autor: Markus Muelln (seeadler78)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe folgendes Problem.Wenn ich den Taster drücke soll die Led
dauerhaft brennen.Den Tastendruck erkennt der Controller.Die LED
leuchtet solange ich den Taster drücke , lasse ich ihn los geht die LED
aus.Ach so der Rest des Programmes ist erst mal egal.
Kann mir jemand sagen warum das so ist
Danke

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal das Konzept der Tastenentprellung im Timer-Interrupt eines
ständig laufenden Timers an (Urheber Peter Dannegger), damit ist das
Reagieren auf bis zu 8 Tasten gleichzeitig ein Kinderspiel.

Links auf Code und Erklärungen dazu findest du, wenn du im Wiki
(Artikelsammlung) nach dem Begriff "entprellung" suchst.

...

Autor: Markus Muelln (seeadler78)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich habe das Problem das die LED nicht dauernt an bleiben.Der Taster
wird ja erkannt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe, daß Du uns unnötige Arbeit aufhalsen willst.

Lösche allen auskommentierten und toten Code, probier es dann nochmal
aus und dann schaut sich das vielleicht auch mal jemand näher an.


Peter

Autor: jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich Taser dir auch mal einen gleich!

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut, ist nicht mit Tiny2313 (den gab's damals noch nicht), statt der
LED wird nur ein Laser geschaltet, nebenher auch noch ein einfacher
Schrittmotor. Aber ich denke mal, dass du aufgrund der Kommentare die
relevante Stelle finden wirst und es auf den Tiny2313 übertragen
kannst.

...

Autor: norad (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@markus

Was Du willst ist sowas wie ein Stromstoßschalter oder auch
Toggel-FlipFlop.


Ich hab hier mal ein Ablauf Diagramm Skizziert, schlagt mich dafür aber
nicht ;)
Allerdings gilt es 8051 derivate da ich mich bei den AVR's nicht
auskenne bzw. ob es da Bitadressierbare Bereiche gibt.

Das Diagramm ist etwas grob  desshalb erklär ich's nochmal .

Im Prinzip wird beim drücken einer Taste entsprechend ein Ausgang
Invertiert und ein Merker gesetzt.
Nachdem die Taste losgelassen wurde wird der Merker wieder gelöscht.
Betätigt man den Taster wieder beginnt das Spielchen von vorne und der
Ausgang wird abermals invertiert usw.

Also alles hängt hier am Merker.

Ich hoffe es hilft dir weiter

Autor: norad (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Markus

Sorry! mir ist ein Fehler unterlaufen :((
Hier die Korrektur!

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann es aber auch kompliziert machen...

Da du ja mit dem Tiny2313 arbeitest, kannst du ja auch seine Features
nutzen.

Setze einfach das entsprechende Bit im PINx-Register, und schon ist der
zugehörige Port getoggelt, also invertiert. Siehe auch Seite 47 ganz
oben im Datenblatt des Tiny2313.

Ansonsten erreichst du das T-Flipflop ganz einfach durch eine
EXOR-Verknüpfung des eingelesenen Ports mit einem Register, in dem das
Bit  die Bits gesetzt ist  sind, das / die getoggelt werden
soll(en).

Also:
- zu toggelnde Bits in Hilfsregister2 setzen
- Port in Hilfsregister1 einlesen
- Hilfsregister1 mit Hilfsregister2 EXOR-verknüpfen
- Hilfsregister1 an Port ausgeben

...

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.