PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : uint16 nach uint8 übertragen



super_castle
29.01.2006, 10:55
wie kann man eine uint16 nach uint8 übertragen.
der wert von uint16 ist nicht grösser wie 200.
dieses für winavr-c.

castle

Andun
29.01.2006, 11:57
Ich weiß jetzt nicht ob das geht, aber hast du schon mal mit einem einfach Cast versucht? Also

var8int = (uint8) var16int;

super_castle
29.01.2006, 18:24
ich habe eine maske genommen. danke

ogni42
30.01.2006, 08:57
Meinst Du etwas wie



uint8_t i;
uint16_t x;

i = x & 0xff;


Das ist Verschwendung, da der Compiler die Maskierung für Dich macht, indem er nur die unteren 8 Bit des Datenwortes nimmt. Wenn Du Glück hast, wird das später wegoptimiert, da es unnötiger Code ist.

Um ein Warning des Compilers zu vermeiden ist der Weg den Andun beschrieben hat genau der richtige.