Hopsel: (C) Funktion soll Pointer zurückgeben

Beitrag lesen

Hi Julian!

Ich bilde mir fest ein, PORTB wäre ein 8-bit Register und 0x37 verweist auf eine Position im Speicher.

Wir reden aneinander vorbei. Entweder ist PORTB eine per #define bzw. Makro definierte Konstante oder es ist eine Variable. Trifft Ersteres zu [1], kannst du natürlich nicht schreiben, da der Präprozessor vor dem Kompilieren alle Makros und Konstanten einsetzt. Alloziiere doch explizit Speicherplatz für eine Variable PORTB (bzw. einen Zeiger uint8_t *pPortB = (uint8_t*) malloc(sizeof(uint8_t)); ). So hast du definitiv Zugriff auf den Speicherplatz und kannst damit anstellen, was du möchtest.

[1] Was nich möglich ist, wenn du an Funktionen Parameter wie &PORTB übergibst. Das deutet eindeutig darauf hin, dass PORTB eine (globale?) Variable ist.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)