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

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


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>
<#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/07337d03/attachment.htm>


Další informace o konferenci Hw-list