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.
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
> 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.
...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.
> 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 -
ändere einfach den Befehl mit dem du den Pin abfrägst, also statt sbis, pind7 ->sbic, pind7 oder umgekehrt also springe wenn gelöscht oder wenn gesetzt.
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.