Arduino - 32 bitu promenna ze 4 byte
Slavomir Skopalik
skopalik na elektlabs.cz
Středa Prosinec 18 14:36:32 CET 2024
Jen jedna zajimavost, zkouseli jsme ntoh, ale u ARMu jsme narazili na to,
ze nedokaze cist/zapisovat 16/32 bit z nezarovnane adresy (CPU spadne do
faultu).
Takze tam nakonec zutalo tohle (take ModBus):
for(uint i = 0; i < Cnt; i++){
uint16_t v = a->Data[Addr + i];
RxTxBuffer[3 + 2*i] = v >> 8;
RxTxBuffer[3 + 2*i + 1] = v;
}
Slavek
Ing. Slavomir Skopalik
Executive Head
Elekt Labs s.r.o.
MASA - Collection and evaluation of data from machines and laboratories
http://eng.elektlabs.com/products-and-services/masa
-----------------------------------------------------------------
Address:
Elekt Labs s.r.o.
Chaloupky 158
783 72 Velky Tynec
Czech Republic
---------------------------------------------------------------
Mobile: +420 724 207 851
skype:skopaliks
e-mail:skopalik na elektlabs.com
http://www.elektlabs.com
On 18.12.24 14:28, Miroslav Mraz wrote:
> Jasně, udělejte si to po svém, já jen chtěl vědět jak pracuje to
> __builtin...
> Přece jen je rozdíl mezi 32-bit a 8-bit architekturou a jak to bylo
> řečeno, ten překladač je opravdu dost "kreativní". Pro 32-bit ty
> vestavěné swapy používají extra instrukce procesoru, pokud je má,
> jinak sprostě přehazuje byty. Na AVR s přehazováním dělá kouzla, která
> plně nechápu a ani se o to nebudu snažit. Ale je na tom vidět snaha
> šetřit RAM.
>
> Mrazík
>
> On 18. 12. 24 14:12, Jirka Mww wrote:
>> Moje data konstantní nejsou, je to obsah MOdbus zprávy ze
>> Spotprocessoru. Jediné co je konstantní je poloha těch dat v Modbus
>> zprávě, RX[7] až RX[10].
>> Kam se ta data zapíší záleží na jiné části Modbus zprávy.
>> Zdravi
>> Jirka Sloupenský OK1MWW
>>
>>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list