Arduino - 32 bitu promenna ze 4 byte
Petr Labaj
labaj na volny.cz
Středa Prosinec 18 16:53:09 CET 2024
Je zajímavé, že jste oba použili podobnou konstrukci, která je podle mě
suboptimální.
Když už jste teda zvolili ty shifty místo nějakých rychlejších možností.
První řádek by měl být podle mě dosazovací.
Tedy nějak takto:
adc_value = (long)d[0] << 24;
adc_value += (long)d[1] << 16; ...
A u pana Hudečka ještě bez toho úvodního nulování:
u64 <<= 8; u64 = SIGROW.SERNUM5;
u64 <<= 8; u64 |= SIGROW.SERNUM4;
...
PL
******************
Dne 18.12.2024 v 9:56 Jirka Mww napsal(a):
>
> adc_value += (long)d[0] << 24;
> adc_value += (long)d[1] << 16; adc_value += (long)d[2] << 8;
> adc_value += (long)d[3];
>
Dne 18.12.2024 v 13:26 Pavel Hudeček napsal(a):
> u64=0ULL;
> u64 <<= 8; u64 |= SIGROW.SERNUM5;
> u64 <<= 8; u64 |= SIGROW.SERNUM4;
> u64 <<= 8; u64 |= SIGROW.SERNUM3;
> u64 <<= 8; u64 |= SIGROW.SERNUM2;
> u64 <<= 8; u64 |= SIGROW.SERNUM1;
> u64 <<= 8; u64 |= SIGROW.SERNUM0;
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20241218/1eb964a0/attachment.htm>
Další informace o konferenci Hw-list