Bedeutung von PORTB=0xFF und DDRB=0xFF?

1 Antwort

PORTB und DDRB sind 8 Bit Register. Das DDRB stehet für Data Direction Register B. Darin kann man einstellen ob der Pin des entsprechenden Bits ein Eingang oder Ausgang ist. Bei einer 1 ist es ein Ausgang und bei einer 0 ein Eingang. Eine 1 im PORTB hat je nach dem entsprechenden Bit im DDRB zwei verschiedene Funktionen. Bei einem Ausgang kann man den Pin auf HIGH (1) oder LOW (0) setzen. Bei einem Eingang kann durch eine 1 der interne Pull-Up aktiviert werden.

0x64 ist sowie 0xFF eine Zahl in der hexadezimalen Schreibweise. Diese kannst du in Dezimal (100) oder Binär (1100100) umrechnen. Dazu lernst du entweder die Umrechnungen der Zahlensysteme ( http://www.elektronik-kompendium.de/sites/dig/1109101.htm ) oder nimmst den Windowstaschenrechner und stellst ihn auf Programmierer um. Normalerweise sind die Bits der Register in der selben Reihenfolge wie die Pins im Port. Daher wäre bei 0x64 in den PORTB und DDRB Registern die LED an Pin B2, Pin B5 und Pin B6 auf HIGH. Je nach dem wie du nun die LED angeschlossen hast, leuchtet die LED oder nicht. Das kann ich dir nicht sagen.

Einfacher als die hexadezimale Schreibweise wäre es wie im Video erwähnt, den Bit verschiebe Operator zu nutzen. Dabei wird die 1 um so viele Stellen verschoben wie die Nummer des Pins ist. Bsp: für 0x64 könntest du auch schreiben:

DDRB  = 1<<2 | 1<<5 | 1<<6;
PORTB = 1<<2 | 1<<5 | 1<<6;

Hierbei sieht man sofort dass du die Pins 2, 5 und 6 von Port B einschälst.

Wenn du noch Fragen hast, dann schreib sie einfach hier oder unter dem Video als Kommentar.