GCC sloučení do správného typu

Jindrich Fucik fulda na seznam.cz
Čtvrtek Říjen 7 09:03:45 CEST 2021


Ahoj,

mám tu jednu takovou spíš akademickou otázku. Nejprve popíšu prostředí. 
Hardware je ESP8266, programovaný v Arduino IDE, takže překladač je GCC.

ESP je připojeno sériovou linkou do zařízení, které komunikuje 
sedmibitově. zařízení je založeno na 8bit intel platformě, data jsou 
tedy integery 16 bit (znaménkové). Při posílání se nejprve posílá MSB, 
první dva bity, pak prostředních 7 a pak posledních 7 LSB. Data přečtu 
jako pole "byte" (což je jen alias k unsigned char). Pokud se pokusím to 
rozepsat po bitech tak je to takto:

precteno byte[3]
|0 0 0 0  0 0 D15 D14| |0 D13 D12 D11  D10 D9 D8 D7| |0 D6 D5 D4 D3 D2 
D1 D0|

A teď otázka - jak nejefektivněji na tom ESP poskládat zpátky int, který 
zachová znaménko?

Díky za názor

Jindra


Další informace o konferenci Hw-list