www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED ein/ausschalten


Autor: Wimme (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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-Tu...

> 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.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.