Pointer von PORTn auf DDRn zeigen lassen

Gast #4638016
Lesenswert?
• ▲
▼
1
unsigned int* portAddress = ((unsigned int*)&PORTB);
Ausgabe ergibt 0x38;
1
portAddress--;
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren