Forum: Mikrocontroller und Digitale Elektronik uint8_t nach int


von Florian S. (sirius7)


Lesenswert?

Hallo

habe jetzt wegen dem uint8_t Datentyp von AVR recherchiert und wie ich 
verstanden habe, man kann ihn ohne weiteres in char und int 
konvertieren. Stimmt das so? habe leider keine Möglichkeit zur Hand es 
nachzuprüfen. uint8_t ist ja AVR-Spezifischer universeller Datentyp und 
wird ja unter anderem auch bei ADC Umwandlung verwendet.

Z.B. uint8_t wert = 0b11111111

kann ich dann einfach zuweisen

int a = (int) wert; // a = 255

oder

char a = (char) wert; // a = 0xFF

?
danke im Voraus

von Peter II (Gast)


Lesenswert?

Alex S. schrieb:
> kann ich dann einfach zuweisen

ja, dafür braucht es nicht mal den cast
1
int a = wert; // a = 255

das geht teilweise nicht, weil char mit oder ohne vorzeichen sein kann.
1
char a = wert; // a = 0xFF

von Florian S. (sirius7)


Lesenswert?

Hallo Peter, vielen Dank! :)

von Bernd K. (prof7bit)


Lesenswert?

Alex S. schrieb:
> Datentyp von AVR

Der ist nicht von AVR, der ist von POSIX und ISO-C99, die sind in 
stdint.h definiert, nur mal so am Rande.

von Michael U. (amiga)


Lesenswert?

Hallo,

Alex S. schrieb:
> uint8_t ist ja AVR-Spezifischer universeller Datentyp

eher im Gegenteil. Es ist ein allgemein definierter Datentyp unsignet 
int mit 8 Bit.

Spätestens bei unsigned int und uint16_t wird der Unterschied 
entscheidend:
Auf dem AVR ist unsigned int 16 Bit, auf dem ESP8266 z.B. aber 32Bit, 
weil es ein 32 Bitter ist.

uint16_t ist dagegen auf beiden immer 16 Bit.

Die "Kleinigkeit" hat mich schon genervt, als ich AVR-Code auf den ESP 
gworfen und nicht daran gedacht habe.

Gruß aus Berlin
Michael

von Mein grosses V. (vorbild)


Lesenswert?

Michael U. schrieb:
> Die "Kleinigkeit" hat mich schon genervt, als ich AVR-Code auf den ESP
> gworfen und nicht daran gedacht habe.

Ja , was machst du auch so einen Quatsch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.