LED ein/ausschalten

Gast #1112184
Lesenswert?

Hallo!

Ich habe einen Atmega644 und möchte mit diesem eine LED an bzw. 
ausschalten.
Die LED befindet sich in einem Schaltkreis der mit PINC1 und dem GND des 
MCs verbunden ist.
Nun meine Frage:
Reicht es um die LED einzuschalten, den Ausgang PINC1 auf 1 zu setzen?
Oder muss ich, so wie ich es mal gelesen habe, aber irgnedwie für 
unlogisch halte, das ganze etwa auf 0 setzen?

Im Tutorial habe ich sowas hier gesehen:
PORTB ^= ( 1 << PB0 );

Was genau soll das eigentlich bedeuten?

Dankeschön!
Wimme
Persönliche Seite #1112243
Lesenswert?

Wimme wrote:

> Ich habe einen Atmega644 und möchte mit diesem eine LED an bzw.
> ausschalten.

Geht.

> Die LED befindet sich in einem Schaltkreis der mit PINC1 und dem GND des
> MCs verbunden ist.

Hoffentlich mit einem Vorwiderstand im Schaltkreis zur Strombegrenzung.
http://www.mikrocontroller.net/articles/LED#Vorwiderstand

> Nun meine Frage:
> Reicht es um die LED einzuschalten, den Ausgang PINC1 auf 1 zu setzen?

Kommt darauf an, wie die LED angeschlossen ist. Wenn sie

Pin    Vorwiderstand     LED
---+--------###----------->|--------+ GND

Angeschlossen ist, muss der Pin eine positive Spannung liefern, um die 
LED zum leuchten zu bringen. Dann stimmt deine Vermutung bzgl. des 
Ausgangspegels (HIGH, 1).

Zusätzlich muss der Portpin auch noch als Ausgang konfiguriert werden.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Datenrichtung_bestimmen

> Im Tutorial habe ich sowas hier gesehen:
> PORTB ^= ( 1 << PB0 );
> Was genau soll das eigentlich bedeuten?

Anweisungen dieser Art nimmt man, um Bits in einer Zahl zu toggeln, d.h. 
1 in 0 umzuwandeln und 0 in 1. Nützlich beim Blinken einer LED... 
Erklärungen stehen im Artikel Bitmanipulation bzw. die Operatoren ^ 
und << sind in allgemeinen C-Lehrbüchern erklärt.

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