Atmega8 vertauscht Bits(?)

OP #405719
Lesenswert?

Hey Leute,
jetzt bin ich doch wieder etwas verzweifelt... Nachdem mein letztes
mysteriöses Problem simpel gelöst wurde, hoffe ich mal, dass das beim
2. auch so ist, allerdings komm ich nicht ganz von selbst drauf.

Ich habe einen Atmega8 mit dem Einsteigerboard aus dem Shop hier. So
wie ich das verstanden hab, muss man, um z.B. eine LED an einem Ausgang
anzumachen, das entsprechende Bit am Pin von 1 auf 0 setzen und sie
leuchtet. So verhält sich auf dem Board auch die Beispielled. Wenn man
einen Taster an einem Eingang hat (verbindet Masse und nen Eingangspin)
sollte ja bei gedrücktem Taster das entsprechende Bit ebenfalls von 1
auf 0 springen. Der AVR-Simulator verhält sich jedenfalls so.

Mein Problem: Alles, was ich angeschlossen hab, verhält sich genau
andersrum: Schließe ich eine LED an einen Ausgang, geht sie bei 1 an
und bei 0 aus. Ein Taster erzeugt gedrückt eine 1, losgelassen eine 0.
Besonders paradox: schließe ich eine 2. LED an die Beispiel-LED, geht
die Beispiel-LED bei 1 aus, meine 2. geht dafür bei 1 an (bei 0 genau
umgekehrt).
Was könnte ich da falsch machen? :( Würde mich echt über kleine oder
große Hinweise freuen.
#405720
Lesenswert?

Hallo,

ohne das Board zu kennen: wie sieht die Hardware aus?
Schaltet der Taster gegen GND oder VCC?
Ist die LED gegen GND oder VCC geschaltet?
Je nach Anschlussart hast du das beschriebene Verhalten. Siehe dazu für
die Eingänge/Taster z.B. hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Tasten_und_Schalter
Für die Ausgänge verhält es sich analog. Wenn dein uC 1 liefert (=VCC)
und du den Verbraucher gegen VCC angeschlossen hast, fließt kein Strom.
Ist er hingegen gegen GND geschaltet, fließt Strom => LED leuchtet. Wenn
dein uC eine 0 liefert (=GND) und dein Verbraucher ist gegen VCC
angeschlossen, fließt Strom => LED leuchtet. Ist er hingegen gegen GND
geschaltet, fließt kein Strom.

Hans
#405722
Lesenswert?

> Alles, was ich angeschlossen hab, verhält sich genau
> andersrum:

Dann hast du nicht wirklich verstanden, wie die Beispielled
angeschlossen war.
Studier den Schaltplan! Wenn du keinen hast: Studier die
Leiterführung auf dem Board.

Du wirst feststellen, dass im Falle der Beispielled es
vom Ausgang des Mega8 über die Led nach + geht.
Deine eigenen Leds jedoch sind nach - verkabelt.
OP #405723
Lesenswert?

...Und wieder war es so eine verhältnismäßig einfache Erklärung, auf die
nich nie allein gekommen wär :D Danke Leute, aber ich muss noch viel
lernen...
Ich hab mir das mit meinen bescheidenen Elektronikkentnissen so
vorgestellt, als ob sozusagen im µC eine art Schalter ist, der einfach
nur nen Kontakt schließt und entweder 5V anschaltet oder den Stromkreis
unterbricht. Genau das Gleiche bei den Inputs...
Es war tatsächlich so, dass ich gegen GND geschaltet habe.
#405724
Lesenswert?

> Ich hab mir das mit meinen bescheidenen Elektronikkentnissen so
> vorgestellt, als ob sozusagen im µC eine art Schalter ist,

Diese Modell ist auch nicht schlecht als Gedankenmodell.
Nur sieht der Schalter in etwa so aus:


  +  ----------------+
                     |
                     |
                     o
                       \
                        \
                         ------- Pin an dem du deine Schaltung
                                 anhängst

                     o
                     |
                     |
  - -----------------+

Der Schalter schaltet also den Ausgangspin wahlweise an +
oder an -

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