Der Post hier ist schon alt, ich antworte jedoch trotzdem, falls jemand es doch brauchen sollte.
Dann nimm doch einen cast-Operator, sowie botty es sagte. Stichwort "implizite Datentypkonvertierung". Heißt also eine "gewaltsame" Konvertierung von einem größeren Datentyp (uint16_t) zu einem kleineren (uint8_t).
Dann werden nur die niedrigsten 8 Bits der uint16_t - Variable in das Portregister eingetragen.
Code:
uint8_t LowByte;
uint16_t DualByte;
// hier folgt die Zuweisung der 16-Bit-Variable
// Bei einer impliziten Datentypkonvertierung findet kein Runden etc. statt,
// lediglich ein "Abschneiden" der höheren 8 Bits. Die niedrigen 8 Bits werden
// der 8-bit-Variable zugewiesen
LowByte = (uint8_t) DualByte;
Lesezeichen