Atmega16 Ausgang verhält sich merkwürdig

Gast #3557484
Lesenswert?

Hey Profis,

habe einen Atmega16 und daran eine ganz normale LED mit Widerstand 
angeschlossen. Wenn ich jetzt ein Programm laufen lasse geht die LED 
(meiner Meinung nach einen Schritt zu früh) an, allerdings danach sofort 
wieder aus - obwohl das Programm durch eine Endlosschleife ewig läuft.
1
LDI r16,  0xFF
2
OUT DDRA, r16
3

4
LDI r16,   0xFF     ; hier geht die LED an
5
OUT PORTA, r16      ; LED bleibt an
6

7
endlos: jmp endlos  ; LED geht aus

Das ist doch ganz und gar nicht normal, oder?
Hoffe ihr könnt mir weiterhelfen :)

lg e3onjz
#3557506
Lesenswert?

Wenn du im Sink Betrieb arbeitest, leuchten die led's, sobald du dein 
DDR geladen hast.
Zu dem Zeitpunkt sind die Ports ja low. Sobald du die Ports setzt hast 
du auf beiden Seiten das gleiche Potenzial und die Led geht aus.

Ist jetzt nur ne Vermutung. Ohne Schaltplan und komplettes Programm 
können wir nur vermuten.


MfG
Sebastian
Gast #3557612
Lesenswert?

Es funktioniert! :)

Aber ich bin trotzdem noch verwirrt, - ich hatte meine LED so 
angeschlossen wie hier beschrieben ist: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen.

Wenn ich sie jetzt aber andersrum, in der Grafik von Markus als "Current 
Source" beschrieben, einbaue, funktionierts...

Wieso wurde dort dann der andere Weg beschrieben, mit genau dem gleichen 
Programm wie ich hatte?

Auf jedenfall vielen Dank euch! Jetzt kann ich mein Feierabendbier 
genießen ;)

P.S. Gibt es hier etwas wie "Thema gelöst?"
Gast #3557688
Lesenswert?

Ich hatte die Schaltung zum Anschlus der LED genau wie dort beschrieben 
aufgebaut und das selbe Programm wie dort verwendet, nur halt mit 
anderen Ports.

Und ich musste jetzt, damits funktioniert die LED umdrehen und anstatt 
von +, zu - führen...

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