mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik myavr Eingänge


Autor: Anne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebes Forum,

ich habe große Probleme mit den einfachsten Dingen.

Ich möchte mit einem Taster eine LED tasten.

Wird der Taster das erste mal gedrückt, schaltet die LED ein, wird der
Taster das zweite mal gedrückt, schaltet die LED wieder aus.

Das schaffe ich ja noch, allerdings brauche ich sehr viele Register.
Wenn ich 8 Taster und 8 LED's habe, dann ist der Controller voll!

Vielleicht hat jemand einen Tipp für mich?

Vielen lieben Dank

Autor: wfischer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum brauchst du mehr als ein Register pro Led? Du musst doch nur den
aktuellen Zustand der LED speichern. Wenn der Taster gedrückt wird,
dann musst du den Zustand nur per XOR umkehren und an den Port
ausgeben. Wenn du die Taster nicht per Software entprellen musst, dann
reicht sogar ein bit pro Led. Ein Register ist 8 Bit breit und reicht
daher für 8 Leds. Wenn die Register trotzdem knapp werden, dann kannst
du bei den meisten Controllern immer noch den Ram verwenden.

Autor: Anne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, ich werde die Eingänge noch über Gatter entprellen. Mir
scheint, als ob alles andere wirklich unsauber ist.

Vielen Dank

Autor: Tassilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Anne,

>dann ist der Controller voll!

welcher ist denn dann voll??

Hat das Teil micht einen Mega8??

Liebe Grüße
Tassilo

Autor: Tassilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Anne,

>Mir scheint, als ob alles andere wirklich unsauber ist.

Nein, Software ist ganz OK un klabbert ganz gut!!

Schaumal hier:

http://www.mikrocontroller.net/forum/read-4-20549.html#new

Liebe Grüße
Tassilo

Autor: Anne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tassilo,

vielen Dank für den Link. Das ist mir noch zu hoch ;-).

Bin wirklich am verzweifeln. Ich habe schon soviel versucht. Meistens
habe ich das Ergebnis, dass ich die LED dann garnichtmehr einschalte,
oder aber ständig schalte (das kann ich über UART sehen).

Gruß

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte an vorhandenem Prellen der Taster liegen.

Wenn du den Taster drückst, so schließt sich nicht sofort der Kontakt
auf vollen "Durchfluss", sondern der Taster schwingt etwas zwischen
AN und AUS her, bis er einen stabilen Zustand bei AN gefunden hat.
Genauso beim loslassen.

Beispiel: Lässt du einen Ball fallen, bleibt er nicht sofort liegen,
sondern hüpft noch ein wenig bevor er wirklich liegen bleibt. Dagegen
gibts einige Tricks. Ein paar Software-basierte Sachen (Codesammlung:
Bulletproof Entprellung von peter Dannegger) aber auch Hardware
basierte Sachen (WIKI "Entprellung")

Ansonsten brauchst du nichtmal 8 Register für 8 Taster. Es reicht ein
Register für 8 Taster. ein Register ist 8 Bit breit (1byte) 1 Bit kann
den Wert 1 oder 0 annehmen. Und jedes dieser Bits kannst du für einen
Taster benutzen.

Autor: Anne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich doch versucht.
Jeden Zustand in einem BIT merken und mit dem neuen vergleichen. Ergibt
sich keine Änderung so soll nichts passieren. Das bekomme ich mittels
"EOR" raus, aber es mag trotzdem ned funktionieren.

Liebe Grüße

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.