Cyrus XX schrieb:
> -> Durchführung des Zweierkomplements und Speicherung in Float32 struct
> mit:
>
1 | accDataRx_ptr->f32_dataRxTwosCompl[i] =
|
2 | > (~accDataRx_ptr->s16_dataRxOrganized[i] + 0x0001);
|
~ ist kein 2-er Komplement.
> Wo liegt der Fehler?
> Liegt es an den Typkonversionen?
Du hast offenbar eine Ausgabemöglichkeit.
Lass dir halt mal alles ausgeben und nicht nur das Endergebnis!
Beginnend mit den Werten, die du vom Register bekommst, lässt du dir
alles - jedes einzelne Byte, jeden einzelnen Wert - durch alle
Umrechnungen ausgeben.
Und dann machst du die Umrechnung mal händisch mit Papier und Bleistift
und den Angaben im Datenblatt.
Das lässt dich nicht nur den Fehler finden, sondern wird auch dein
Verständnis schulen.
Wenn hinten was falschen rauskommt, dann kann man sich natürlich
hinstellen und heulen. Man kann sich aber auch auf den Standpunkt
stellen: Ok, dann seh ich mir halt mal an, wie das Ergebnis zustande
kommt. Und zwar beginnend mit den Werten, die ganz vorne in das
Verfahren reingehen.
DIe zweite Vorgehensweise ist die eines Softwareentwicklers, die erste
Vorgehensweise ist die des Rests der Welt.