Frage von Bektashi, 19

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

Ich würde gerne den Zweck und die Bedeutung dieser Zwei Begriffe wissen. Und dann würde ich noch gern wissen, welche LED z.B. bei 0x64 leuchtet/leuchten, und wie man es herausfindet bzw. berechnet das diese LED's leuchten.

Antwort
von Tobihogh, 8

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
von Tobihogh, 8

0x64 = 0b1100100

Kommentar von Bektashi ,

Welche LED würde da leuchten ?

Kommentar von Tobihogh ,

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

Kommentar von Tobihogh ,

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

Kommentar von Tobihogh ,

ich schreib nachher am Computer mehr.

Keine passende Antwort gefunden?

Fragen Sie die Community