-
-
Moderator
Robotik Visionär
Hallo
Du solltest besser durch 256 dividieren.
Ein 2-Byte-Wert ist 256*highbyte+lowbyte. Bit0 des Highbytes ist auch Bit8 der 16bit-Variablen und hat die Wertigkeit 2^8=256.
Mit 255 funktioniert es nur bei Werten die kleiner als 256*255-1 sind, in eine 16Bit-Variable passen aber 256*256-1=65535 Werte.
Klassisch macht man das wohl so wie bei der Baudratenberechnung:
highbyte = 16bit-Variable >> 8;
lowbyte = (uint8_t) 16bit-Variable;
Und zurückrechnen geht so:
16bit-Variable=256*highbyte+lowbyte;
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen