Julian von Mendel: (C) Funktion soll Pointer zurückgeben

Beitrag lesen

Hi,

uint8_t portB = PORTB;
error: initializer element is not constant

Hast du es schon mit Typumwandlung versucht?

uint8_t portb = (uint8_t)PORTB; liefert das gleiche Ergebnis.

Wie wird PORTB definiert?

Bei mir funktioniert die Zuweisung problemlos. Welche Dateien hast du inkludiert?

#include <avr/io.h>

In dieser wird iom8.h speziell für meinen Mikrocontroller inkludiert, welche PORTB als Konstante definiert:
#define __SFR_OFFSET 0x20
#define _SFR_IO8(io_addr) ((io_addr) + __SFR_OFFSET)
#define PORTB   _SFR_IO8(0x18)

=> PORTB = 0x38

Schöne Grüße
Julian