Forum: Mikrocontroller und Digitale Elektronik Komisches Verhalten beim Pin auf Ausgang setzen


von pad89 (Gast)


Lesenswert?

Hallo zusammen,

heute konnte ich mich erstmals hinsetzen und meine ersten Programme fuer 
den Atmega32 schreiben.

Ich habe natuerlich mit den LED's angefangen. Dabei ist mir aufgefallen, 
das vermutlich High und Low vertauscht sind.

Hier mal ein Beispiel:


DDRC |= (1<<PC0) //Pin PC0 auf Ausgang gesetzt

PORTC |= (1<<PC0) // Pin PC0 auf High gesetzt (5V == VCC)

Jetzt sollte die LED eigentlich leuchten, was sie aber nicht macht.


Wenn ich allerdings diese Befehle ausfuehre, dann geht sie an.

DDRC |= (1<<PC0) //Pin PC0 auf Ausgang gesetzt

PORTC &= ~(1<<PC0) // Pin PC0 auf High gesetzt (0V == GND)


Das verwirrt mich gerade ein bisschen.

Hoffe Ihr wisst darauf eine Antwort!!!

Gruss

von Markus O. (pipimaxi)


Lesenswert?

Wie ist die LED denn angeschlossen? Vermutlich nach VCC oder?

Gruß Markus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

pad89 schrieb:
> PORTC &= ~(1<<PC0) // Pin PC0 auf High gesetzt
Genau deshalb sollte man sich solche Kommentare sparen...

von Christian K. (the_kirsch)


Lesenswert?

Je nachdem wie die LED an dem Port-Pin angeschlossen ist, ist sie 
HI-Active oder LOW-Active.

Wie Markus bereits schrieb ist sie vermutlich über einen Widerstand an 
VCC gelegt. Dann leuchtet die LED, wenn der Port-Pin Low-Pegel hat. Hier 
fließt Strom in den Port-Pin rein.


Ist die LED nach GND Geschaltet, leuchtet sie wenn der Port-Pin HI-Pegel 
hat. Hier fließt Strom aus dem Port-Pin raus.


Bitte achte darauf, das die Port-Pins nur einen gewissen Strom 
vertragen.

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
Noch kein Account? Hier anmelden.