LED ein/ausschalten

Gast #1112184
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
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.
Gast
Hallo Wimme,

1. Du musst zwischen µC und LED einen Vorwiderstand von ca. 1k einbauen.
2. Du musst das Datenrichtungsregister für den Portpin auf "1" setzen.
3. Wenn die LED zwischen Portpin und Masse liegt, ist PC1 = "1" LED ein.

Otto

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.