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


von Argon (Gast)


Angehängte Dateien:

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!

von Thomas Burkhardt (Gast)


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?

von ...HanneS... (Gast)


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...

von Argon (Gast)


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

von ...HanneS... (Gast)


Lesenswert?

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

von Thomas Burkhardt (Gast)


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.

von Argon (Gast)


Lesenswert?

Ok danke für die vielen Antworten!

Tolles Forum!! ^^

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
Noch kein Account? Hier anmelden.