LED mit Button schalten

Gast #5746810
Lesenswert?
• ▲
▼
Moin! Ich versuche gerade mittels eines Buttons eine LED 
ein-/auszuschalten.

Controller ist der ATMega168a.
Button ist an PD2 angeschlossen.
LED ist an PB0 angeschlossen.

Der Code funktioniert, aber ich habe ein kleines Verständnisproblem.
Ich frage den Status des PD2 folgendermaßen ab:
1
if( (PIND & (1 << 2)) == 0 )
2
   // do stuff

Mit (1 << 2) erzeuge ich ja eine 8-Bit Bitmaske der Form 00000100
Interessanterweise funktioniert das auch so:
1
if( (PIND & (1 << PD2)) == 0 )
2
   // do stuff

Warum kann ich hier auch PD2 einsetzen? Ich dachte PD2 ist ein 8-Bit 
Register der Form 00000100
Gast #5746811
Lesenswert?
• ▲
▼
thorloff schrieb:
> Moin! Ich versuche gerade mittels eines Buttons eine LED
> ein-/auszuschalten.
> Controller ist der ATMega168a.
> Button ist an PD2 angeschlossen.
> LED ist an PB0 angeschlossen.
>
> Der Code funktioniert, aber ich habe ein kleines Verständnisproblem.
> Ich frage den Status des PD2 folgendermaßen ab:if( (PIND & (1 << 2)) ==
> 0 )
>    // do stuff
>
> Mit (1 << 2) erzeuge ich ja eine 8-Bit Bitmaske der Form 00000100
> Interessanterweise funktioniert das auch so:if( (PIND & (1 << PD2)) == 0
> )
>    // do stuff
>
> Warum kann ich hier auch PD2 einsetzen? Ich dachte PD2 ist ein 8-Bit
> Register der Form 00000100

Nun ganz einfach, das PD2 ist eine Konstante, in Form eines defines.

Schau doch einfach mal in seine Definition <io.h>.
Beitrag #5746817 wurde von einem Moderator gelöscht.
Beitrag #5746819 wurde von einem Moderator gelöscht.
Beitrag #5746820 wurde von einem Moderator gelöscht.

Antwort schreiben

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.

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.