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

... komplette Frage anzeigen

2 Antworten

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.

Antwort bewerten Vielen Dank für Deine Bewertung

0x64 = 0b1100100

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Bektashi
04.09.2016, 16:05

Welche LED würde da leuchten ?

0
Kommentar von Tobihogh
04.09.2016, 16:06

Das kommt auf deinen Controller an. Im Video wirds erklärt anhand eines ATtiny13.

0
Kommentar von Tobihogh
04.09.2016, 16:09

Ich kann dir jetzt nicht den Pin sagen, aber es würde DDB5, DDB6 und DDB2 auf High sein

0
Kommentar von Tobihogh
04.09.2016, 16:11

ich schreib nachher am Computer mehr.

0

Was möchtest Du wissen?