<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;">U toho přetypování bacha na alignement, nevím jak je Atmel na to háklivý.<br>
Nejpřenosnější kód je že se dělá postupně shift. <br>
<br>
Tomáš<br>
<br>
</span><table>
<tr>
<td width=2 bgcolor= #0000ff><br>
</td>
<td><span style=" font-family:'courier new'; font-size: 9pt;">Ah, vadit to nebude, jen si k &RX prictete tolik bajtu, o kolik je offset vasich dat od zacatku (jsem uvazoval, ze ten 1..4 vypada pascalsky s 1-based indexovanim)<br>
DATA = *((unsigned long*)(&RX+ofset))<br>
<br>
On 08.11.2023 16:49, Jirka Mww wrote:<br>
Díky, tohle by se mi líbilo, jen to pole RX je delší, má pak další ještě položky s jinými daty a pak CRC. Nebude to vadit ? <br>
<br>
Zdravi<br>
Jirka Sloupenský OK1MWW<br>
<br>
</span><table>
<tr>
<td width=55><br>
</td>
<td width=470><span style=" font-family:'arial'; font-size: 10pt; color: #41424e;">Neobsahuje žádné viry.</span><a style=" color: #4453ea; font-family:'arial'; font-size: 10pt;" href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail">www.avast.com</a></td>
</tr>
</table>
<br><br>
<span style=" font-family:'courier new'; font-size: 9pt;">st 8. 11. 2023 v 16:44 odesílatel Jindroush <</span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz">jindroush@seznam.cz</a><span style=" font-family:'courier new'; font-size: 9pt;">> napsal:<br>
Tak?<br>
//assuming that both RX and DATA have same endianness and length<br>
DATA = *((unsigned long*)&RX);<br>
<br>
On 08.11.2023 16:25, Jirka Mww wrote:<br>
Dobrý den, <br>
<br>
<span style=" font-family:'arial';">zase bych měl takový začátečnický dotaz : Řeším komunikaci s měničem Goodwe po RS485. <br>
Jsem schopen vyčíst kteroukoli dvojici registrů do pole bytů , řekněme RX[1..4]. Potřebuji z toho ale naplnit proměnnou unsigned long DATA tj. 32 bitů dlouhou. Samozřejmě postupné načítání <br>
jednotlivých bytů a jejich posun po 8 bitech , nebo násobení 256, umím, ale chtěl <br>
bych to zrychlit přímým přesunem jednotlivých bytů do příslušné pozice v té proměnné <br>
DATA. V poli RX[1..4] jsou byty ve správném pořadí, tak jak <br>
budou v té proměnné DATA. Chtěl bych použít něco jako Memcpy, ale nevím, jak to napsat. <br>
V assembleru by to bylo snadné ((:: Můžete prosím někdo poradit ?<br>
<span style=" font-family:'courier new';">-- <br>
Jindroush </span></span></span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz"><jindroush@seznam.cz></a><br>
<span style=" font-family:'courier new'; font-size: 9pt;">_______________________________________________<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><br>
<br>
<span style=" font-family:'courier new'; font-size: 9pt;">_______________________________________________<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>
<span style=" font-family:'courier new'; font-size: 9pt;">
</span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<span style=" font-family:'courier new'; font-size: 9pt;">
</span><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><br>
<span style=" font-family:'courier new'; font-size: 9pt;">
<br>
<br>
-- <br>
Jindroush </span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz"><jindroush@seznam.cz></a></td>
</tr>
</table>
<span style=" font-family:'courier new'; font-size: 9pt;">Ah, vadit to nebude, jen si k &RX prictete tolik bajtu, o kolik je offset vasich dat od zacatku (jsem uvazoval, ze ten 1..4 vypada pascalsky s 1-based indexovanim)<br>
DATA = *((unsigned long*)(&RX+ofset))<br>
<br>
On 08.11.2023 16:49, Jirka Mww wrote:<br>
Díky, tohle by se mi líbilo, jen to pole RX je delší, má pak další ještě položky s jinými daty a pak CRC. Nebude to vadit ? <br>
<br>
Zdravi<br>
Jirka Sloupenský OK1MWW<br>
<br>
</span><table>
<tr>
<td width=55><br>
</td>
<td width=470><span style=" font-family:'arial'; font-size: 10pt; color: #41424e;">Neobsahuje žádné viry.</span><a style=" color: #4453ea; font-family:'arial'; font-size: 10pt;" href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail">www.avast.com</a></td>
</tr>
</table>
<br><br>
<span style=" font-family:'courier new'; font-size: 9pt;">st 8. 11. 2023 v 16:44 odesílatel Jindroush <</span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz">jindroush@seznam.cz</a><span style=" font-family:'courier new'; font-size: 9pt;">> napsal:<br>
Tak?<br>
//assuming that both RX and DATA have same endianness and length<br>
DATA = *((unsigned long*)&RX);<br>
<br>
On 08.11.2023 16:25, Jirka Mww wrote:<br>
Dobrý den, <br>
<br>
<span style=" font-family:'arial';">zase bych měl takový začátečnický dotaz : Řeším komunikaci s měničem Goodwe po RS485. <br>
Jsem schopen vyčíst kteroukoli dvojici registrů do pole bytů , řekněme RX[1..4]. Potřebuji z toho ale naplnit proměnnou unsigned long DATA tj. 32 bitů dlouhou. Samozřejmě postupné načítání <br>
jednotlivých bytů a jejich posun po 8 bitech , nebo násobení 256, umím, ale chtěl <br>
bych to zrychlit přímým přesunem jednotlivých bytů do příslušné pozice v té proměnné <br>
DATA. V poli RX[1..4] jsou byty ve správném pořadí, tak jak <br>
budou v té proměnné DATA. Chtěl bych použít něco jako Memcpy, ale nevím, jak to napsat. <br>
V assembleru by to bylo snadné ((:: Můžete prosím někdo poradit ?<br>
<span style=" font-family:'courier new';">-- <br>
Jindroush </span></span></span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz"><jindroush@seznam.cz></a><br>
<span style=" font-family:'courier new'; font-size: 9pt;">_______________________________________________<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><br>
<br>
<span style=" font-family:'courier new'; font-size: 9pt;">_______________________________________________
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><span style=" font-family:'courier new'; font-size: 9pt;">
</span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><span style=" font-family:'courier new'; font-size: 9pt;">
</span><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><span style=" font-family:'courier new'; font-size: 9pt;">
<br>
<br>
--
Jindroush </span><a style=" font-family:'courier new'; font-size: 9pt;" href="mailto:jindroush@seznam.cz"><jindroush@seznam.cz></a></body></html>