Pointer auf Register

Gast #1203151
Lesenswert?
• ▲
▼
Franz wrote:
> Hallo zusammen,
>
> ich möchte einen Pointer auf PORTB erzeugen um dann darauf zugreifen zu
> können. Leider weiß ich nicht welcher Pointertyp auf ein SFR zeigt.
>
> Danke für Eure Hilfe! :-)

Ein einfacher Zeiger, guck mal in die Header :-D
Da wird quasi einfach die Adresse als Literal hingeschrieben und 
dereferenziert, so nach dem Motto '#define PORTB  (*(0x1234))'.
1
uint8_t *Zeiger = &PORTB;
#1203295
Lesenswert?
• ▲
▼
Johannes M. wrote:
> Johann L. wrote:
>> Nein, das Ziel muss auf jeden Fall volatile sein:
>
1
>> #include <stdint.h>
2
>>
3
>> uint8_t volatile *pportb = &PORTB;
4
>
> Ja, das Ziel. Bei Dir ist aber jetzt der Pointer volatile und nicht das
> Ziel...

Nein. Die Zeilen von Johann und dir sind äquivalent.
Für einen volatile Zeiger müsste das volatile rechts vom * stehen.
#1203433
Lesenswert?
• ▲
▼
Stefan Ernst wrote:
> Nein. Die Zeilen von Johann und dir sind äquivalent.
> Für einen volatile Zeiger müsste das volatile rechts vom * stehen.
Autsch, ja klar. Hatte mich auf die Schnelle tatsächlich verguckt. Das 
liegt daran, dass ich Typqualifizierer grundsätzlich vor den Typ 
schreibe.

Hätte mich auch gewundert, wenn ausgerechnet dem Johann da ein Fehler 
unterlaufen wäre...

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