3 Leds einschalten, mit 1 Taster ausschalten. (ATmega8)

OP #4963176
Lesenswert?

Hallo,

ich versuche gerade eine Aufgabe zu realisieren mit AVR Studio 4.

Ich möchte 3 Leds zum Leuchten bringen. Das habe ich auch schon 
geschafft.

Aber ich weiß nicht wie ich sie mit einem Taster ausschalten kann. Mit 
dem Programm "Hapsim" habe ich schon verschiedene Programme 
simuliert...Ich schaffe es immer LEds zum leuchten zu bringen, aber eben 
nicht sie auszuschalten.

Unter Hapsim habe ich die Leds, und den Taster richtig konfuguriert.

ist mein Programm falsch?

Ich danke für jede Hilfe. (Anfänger)
Angehängte Dateien:
Gast #4963188
Lesenswert?

Ich habe keine Ahnung, was Hapsim ist. Ich würde den Debugger von AVR 
Studio 4.19 verwenden, der eignet sich tadellos für Assembler.

Dein Programm schaltet die Ausgänge auf Low, wenn der Taster-Eingang auf 
High geht. Passt das zu deiner Schaltung?

Der Taster muss an PB3 angeschlossen werden, ist das der Fall? Ich 
frage, weil eine auskommentierte Zeile auf PD3 verweist.
Gast #4963379
Lesenswert?

Das ganze funktioniert in einer Simulation nur, wenn dein Taster auch 
entsprechend angeschlossen bzw. eine vernünftige Schaltung simuliert 
wird. Dein Programm löscht die zu Beginn eingeschalteten LEDs wieder, 
sobald am Tasterpin eine logische 1 anliegt, das heißt, dein Taster muss 
vom Eingang "nach Plus" geschaltet sein. Notwendig ist hier auch noch 
ein "Pull-Down-Widerstand", damit der Pin auf einem definiertem Pegel 
gehalten wird, wenn der Taster gerade nicht gedrückt ist und aus der 
Umgebung keinen Mumpitz einfängt. Wenn du in deinem Simulationsprogramm 
die Außenbeschaltung verändern kannst, dann versuche es mal mit einem 
solchen Widerstand. Möglicherweise spinnt die Simulation, wenn kein 
definierter Pegel anliegt.

Üblich ist zur Tasterabfrage aber, dass der interne Pullup aktiviert 
wird (man braucht keinen extra einlöten) und der Taster nach Masse 
schaltet. Das ist aber alles erstmal nur gemutmaßt, deine Schaltung hast 
du ja nicht mitgeliefert.

Die auskommentierte Zeile nimm mal wieder rein und ändere sie auf den 
richtigen Port (siehe Post von stefanus), damit schaltest du den Pullup 
ein, den Taster dann logischerweise nach Masse schalten lassen.
Dann mit SBIC und SBIS spielen, wie Ashoka schrieb, damit kannst du die 
Reaktion steuern, also ob bei low- oder highpegel am Eingang 
ausgeschaltet wird.
Kannst du mal einen Screenshot von der Simulation reinstellen? Also von 
der Außenbeschaltung des uC?
Gast #4964051
Lesenswert?

Ostap A. schrieb:
> ich habe die hardware nur in der hochschule ..zuhause muss
> ich es mit "hapsim" simulieren.

Dann versuch es mal lieber an realer Hardware, so einer Simulation würde 
ich auch eher wenig vertrauen. Die Laboringenieure, die ich bisher 
kennenlernen durfte, haben auch wenig Probleme damit gehabt, wenn man 
mal "neben der Spur" vorbeigekommen ist, um bissel zu tüfteln :) 
Vielleicht leihen die dir auch was aus? Frag doch einfach mal nett nach.
Dein Programm sollte unter Berücksichtigung der hier gegebenen 
Vorschläge funktionieren, wenn nicht, dann ist es ein Hardwareproblem.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren