<html><head><title>Re: C: Arduino : Přesun pole bytů do proměnné unsigned long</title>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 9pt;">Jestli mohu skromně poradit, udělejte tu konverzi z kompletních dat. Časem můžete měnič posílit a pak se nestačíte divit, co z toho leze za nesmysly.<br>
<br>
Tomáš<br>
<br>
<br>
</span><table>
<tr>
<td width=2 bgcolor= #0000ff><br>
</td>
<td><span style=" font-family:'courier new'; font-size: 9pt;">Díky všem za rady, něco z toho určitě použiju.<br>
Zjistil jsem taky , že mám špatnou informaci o pořadí registrů v tom měniči GOODWE, teď už mám lepší soubor. Vzhledem k tomu, že údaj v těch registrech je v 1/10W, a můj měnič víc než 5.5 kW nedává, vejde se údaj o výkonu do dvou bytů ( Max 650000, je to unsigned ) , takže ty horní byty jsou stejně nuly.S tím si i prostým posunem o 8 bitů klidně poradím. <br>
<br>
Zdravi<br>
Jirka Sloupenský OK1MWW<br>
<br>
čt 9. 11. 2023 v 13:17 odesílatel Miroslav Mraz <</span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:mrazik@volny.cz">mrazik@volny.cz</a><span style=" font-family:'courier new'; font-size: 9pt;">> napsal:<br>
Napsal bych to asi takto<br>
static unsigned char RX_Data[] = {0, 0, 0, 0x12, 0x34, 0x56, 0x78, 0, <br>
0xab, 0xcd};<br>
void test () {<br>
uint32_t res4b = 0u;<br>
memcpy (&res4b, RX_Data + 3, sizeof(res4b));<br>
res4b = __builtin_bswap32 (res4b); // pokud leze MSB jako první, <br>
jinak vynechat<br>
printf ("test4b:0x%08lX\n", res4b);<br>
<br>
uint16_t res2b = 0u;<br>
memcpy (&res2b, RX_Data + 8, sizeof(res2b));<br>
res2b = __builtin_bswap16 (res2b); // stejně jako pro res4b<br>
printf ("test2b:0x%04X\n", res2b);<br>
}<br>
Funguje to, memcpy() se tam nijak neprojeví a připadá mi to čitelnější. <br>
Výstup je<br>
test4b:0x12345678..<br>
test2b:0xABCD..<br>
<br>
Mrazík<br>
<br>
On 08. 11. 23 17:27, Jirka Mww wrote:<br>
> Teď mne ještě napadlo, že vlastně nevím, jaké je pořadí významnosti bytů <br>
> v tom unsignedlong. Je to tak, že nejvýznamější byte je první,<br>
> nebo je poslední? Jsem z toho nějaký zmatený ((::<br>
> <br>
> Zdravi<br>
> Jirka Sloupenský OK1MWW<br>
> <br>
> <br>
_______________________________________________<br>
HW-list mailing list - sponsored by </span><a style=" font-family:'courier new'; font-size: 9pt;" href="http://www.HW.cz">www.HW.cz</a><br>
<a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a style=" font-family:'courier new'; font-size: 9pt;" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></td>
</tr>
</table>
</body></html>