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!
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?
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...
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
Dann solltest du auch die m8def.inc einbinden und nicht die 4433def.inc...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.