mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik einfacher Code für einen Zähler


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich bin noch Anfänger in Sachen Mikrocontroller. Ich habe diesen Code
geschrieben damit bei jedem Tasteranschlag eine weitere LED leuchtet.
Wenn ich das Programm in den Controller schreibe und es teste gehen
alle drei LEDs beim ersten Tasteranschlag an. Wie kann ich das Problem
beheben?

Außerdem würde ich gerne wissen wie ich im Assembler eine Pause
einfügen     kann, die ca. 1 sekunde lang ist ohne so oft NOP zu
schreiben.

Danke im Voraus für Antworten!

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

1) du musst die Tasten entprellen, sonst erkennt der µC mehr als eine
Betätigung pro Druck. Suche hier im Forum und in der Codesammlung
danach. Das Thema wurde schon recht erschöpfend behandelt.

2) informiere dich über die eingebauten TIMER. Du willst den µC doch
nicht ärgern?

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi...

Dein Taster prellt...
...nicht die Zeche, sondern ehe er sich entscheidet, ob er an oder aus
sein soll, hat er schon etliche male hin-und hergeschaltet...
Du wirst also um eine Entprellen der Tasten nicht herum kommen
(Codesammlung)

Pausen...
...erreichst du (erstmal) mit Schleifen. Du erhöhst (oder erniedrigst)
ein Register und springst solange zurück, bis es Null ist (brne).
Schleifen kann man ineinander verschachteln. Codebeispiele findest du
sicherlich im Tutorial oder in der Codesammlung. Später dann mal werden
Timer und Interrupt deine Freunde sein...

...HanneS...

Autor: Argon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Erstmal danke für die Antwort!
1. Aber durch das Warten bis der Schalter wieder offen ist wird er doch
   entprellt oder?

2. also ich habe einen ATMega8

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann solltest du auch die m8def.inc einbinden und nicht die
4433def.inc...

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

1) Nein :) wenn du draufdrückst, wird der Schalter geschlossen und
wieder geöffnet und so fort. Damit werden mehrere Betätigungen vom µC
registriert.

2) Fein :) Probiers zuerst mit Schleifen, wie Hannes schreibt, die
Timer laufen dir ja nicht weg.

Autor: Argon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke für die vielen Antworten!

Tolles Forum!! ^^

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.