<div dir="ltr">Díky za radu, asi máte pravdu, těch pár bytu navic uz unesu. <br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Zdravi<br>Jirka Sloupenský OK1MWW</div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">pá 10. 11. 2023 v 12:22 odesílatel Tomáš Hamouz <<a href="mailto:konfery.tomas.hamouz@seznam.cz">konfery.tomas.hamouz@seznam.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<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>
<tbody><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" target="_blank">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" target="_blank">www.HW.cz</a><br>
<a style="font-family:"courier new";font-size:9pt" href="mailto:Hw-list@list.hw.cz" target="_blank">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" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a></td>
</tr>
</tbody></table>
</div>
_______________________________________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>