1 | unsigned int* portAddress = ((unsigned int*)&PORTB);
|
Ausgabe ergibt 0x38;
Ausgabe ergibt 0x36;
Der Pointer 'portAdress' zeigt auf PORTB des AtMegas128 (0x38).
Im Datenblatt erkennt man Adresse 0x37 ist DDRB und Adresse 0x36 ist
PINB.
Meine Absicht ist es nur die Adresse eines Ports zu übergeben und
mittels Subtraktion von 1 die Adresse des zugehörigen DDRs zu ermitteln.
Doch wie im Code oben zu sehen bekomme ich für 0x38 - 1 = 0x36.
Eine andere Ausgangsadresse (DDRn, PINn) und Nutzung von Addition kam
zum selben Ergebnis.