Re: C: Arduino : Přesun pole bytů do proměnné unsigned long

Jirka Mww jirka.mww na gmail.com
Středa Listopad 8 17:27:29 CET 2023


Teď mne ještě napadlo, že vlastně nevím, jaké je pořadí významnosti bytů v
tom unsigned long. Je to tak, že nejvýznamější byte je první,
nebo je poslední? Jsem z toho nějaký zmatený ((::

Zdravi
Jirka Sloupenský  OK1MWW


<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Neobsahuje
žádné viry.www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

st 8. 11. 2023 v 17:20 odesílatel Jirka Mww <jirka.mww na gmail.com> napsal:

> Ja to nebudu nikam prenaset, procesor je ATMEGA 2560, je to jednorazovka.
>
> Zdravi
> Jirka Sloupenský  OK1MWW
>
>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Neobsahuje
> žádné viry.www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> <#m_3535918655316052050_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> st 8. 11. 2023 v 17:17 odesílatel Tomáš Hamouz <
> konfery.tomas.hamouz na seznam.cz> napsal:
>
>> U toho přetypování bacha na alignement, nevím jak je Atmel na to háklivý.
>> Nejpřenosnější kód je že se dělá postupně shift.
>>
>> Tomáš
>>
>>
>> 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)
>> DATA = *((unsigned long*)(&RX+ofset))
>>
>> On 08.11.2023 16:49, Jirka Mww wrote:
>> 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 ?
>>
>> Zdravi
>> Jirka Sloupenský  OK1MWW
>>
>>
>> Neobsahuje žádné viry.www.avast.com
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>
>> st 8. 11. 2023 v 16:44 odesílatel Jindroush <jindroush na seznam.cz> napsal:
>> Tak?
>> //assuming that both RX and DATA have same endianness and length
>> DATA = *((unsigned long*)&RX);
>>
>> On 08.11.2023 16:25, Jirka Mww wrote:
>> Dobrý den,
>>
>> zase bych měl takový začátečnický dotaz : Řeším komunikaci s měničem
>> Goodwe po RS485.
>> 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í
>> jednotlivých bytů a jejich posun po 8 bitech , nebo násobení 256, umím,
>> ale chtěl
>> bych to zrychlit přímým přesunem jednotlivých bytů do příslušné pozice v
>> té proměnné
>> DATA. V poli RX[1..4] jsou byty ve správném pořadí, tak jak
>> budou v té proměnné DATA. Chtěl bych použít něco jako Memcpy, ale nevím,
>> jak to napsat.
>> V assembleru by to bylo snadné ((:: Můžete prosím někdo poradit ?
>> --
>> Jindroush <jindroush na seznam.cz> <jindroush na seznam.cz>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> --
>> Jindroush <jindroush na seznam.cz> <jindroush na seznam.cz> 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)
>> DATA = *((unsigned long*)(&RX+ofset))
>>
>> On 08.11.2023 16:49, Jirka Mww wrote:
>> 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 ?
>>
>> Zdravi
>> Jirka Sloupenský  OK1MWW
>>
>>
>> Neobsahuje žádné viry.www.avast.com
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>
>> st 8. 11. 2023 v 16:44 odesílatel Jindroush <jindroush na seznam.cz> napsal:
>> Tak?
>> //assuming that both RX and DATA have same endianness and length
>> DATA = *((unsigned long*)&RX);
>>
>> On 08.11.2023 16:25, Jirka Mww wrote:
>> Dobrý den,
>>
>> zase bych měl takový začátečnický dotaz : Řeším komunikaci s měničem
>> Goodwe po RS485.
>> 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í
>> jednotlivých bytů a jejich posun po 8 bitech , nebo násobení 256, umím,
>> ale chtěl
>> bych to zrychlit přímým přesunem jednotlivých bytů do příslušné pozice v
>> té proměnné
>> DATA. V poli RX[1..4] jsou byty ve správném pořadí, tak jak
>> budou v té proměnné DATA. Chtěl bych použít něco jako Memcpy, ale nevím,
>> jak to napsat.
>> V assembleru by to bylo snadné ((:: Můžete prosím někdo poradit ?
>> --
>> Jindroush <jindroush na seznam.cz> <jindroush na seznam.cz>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________ HW-list mailing list  -
>>  sponsored by www.HW.cz Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> -- Jindroush <jindroush na seznam.cz> <jindroush na seznam.cz>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20231108/0555d6ad/attachment.htm>


Další informace o konferenci Hw-list