Wenn du die Integer so sendest, wie oben weiter gezeigt, dürfte das nicht stimmen!... die high hab ich int8_t gemacht, sonst hab ich keine vorzeichen bei der int16_t.
Beide 8-Bit-Variablen müssen uint8_t sein.
Gruß Dirk
Wenn du die Integer so sendest, wie oben weiter gezeigt, dürfte das nicht stimmen!... die high hab ich int8_t gemacht, sonst hab ich keine vorzeichen bei der int16_t.
Beide 8-Bit-Variablen müssen uint8_t sein.
Gruß Dirk
hoffe, das stimmt...! 8-)Code:uint8_t highbyte, lowbyte; int16_t intval; // bytes zu int: intval = lowbyte + (highbyte << 8); //int zu bytes: lowbyte = intval & 0x00ff; highbyte = (intval >> 8) & 0x00ff;
@HaWe: ja das ist schon richtig so, mein Fehler muss woanders liegen.
Hab dein Codeschnipsel auch testweise soeben mal eingebaut bzw. ersetzt -> führt leider zum selben Ergebnis.
Habe mal testweise ein delay (1s) nach der Zahlenausgabe aufs 7-Segment geschrieben, daran erkennt man deutlich, dass zwischen zwei völlig wirren Zahlenkombinationen hin- und hergewechselt wird, also scheint der Fehler weiterhin an der Umsetzung 16bit / 2*8bit und umgekehrt zu liegen.
Bin um jeden Tipp dankbar
Geändert von opc (15.04.2016 um 14:38 Uhr)
bevor nicht fertig gerechnet wurde, darfst du keine Werte ans Display senden...
... und auch natürlich nicht per UART senden!
nachdem das Int/Byte-Zerlege-Problem dann aber gelöst ist, würde ich empfehlen bei weiterhin bestehenden Problemen ein neues Topic zum Thema "UART" oder "Display" aufzumachen, je nachdem, wo das Problem jetzt liegt.
wenn ich wüsste woran das Problem liegt^^
aber hast recht... ich eröffne ein neues der Übersichtlichkeit wegen....
arbeitest du mit Arduinos oder Raspis?
Lesezeichen