Arduino - 32 bitu promenna ze 4 byte
Martin Záruba
swz na volny.cz
Středa Prosinec 18 17:18:45 CET 2024
Dík. Mimo spotových cen a kurzu, umí to ještě něco? Pořád váhám, zda to
koupit nebo si to napsat sám. Jen toto je docela málo, to by nebylo tak
těžké napsat v Lazarusu (Pascal).
Martin Záruba
Dne 18.12.2024 v 15:42 Jirka Mww napsal(a):
> Umím že Spotprocesoru dostat okamžitě spotove ceny v euru, platny kurz
> euro/ czk, umím napsat nějaká ta jejich makra a umím vyčítat data z
> mého měniče goodwe. Psát do měniče jsem si zatím netroufl, ale popis
> registru měniče i pro zápis mám. Asi to ale nebude potřeba, měnič
> nastavím mobilní aplikaci. Od 1 1 2025 přecházíme na spot, tak během
> Vanoc všechny ty dílčí poznatky zkombinuju a uvidíme
>
> Dne st 18. 12. 2024 14:28 uživatel Martin Záruba <swz na volny.cz> napsal:
>
> Jak jste dopadl pokud jde o data ze SpotProcessoru. Původně jsem
> něco takového chtěl napsat jako podprogram do našeho serveru, ale
> je to fuška a pokud to dává rozumné výsledky, nemá cenu to
> programovat.
>
> Děkuji
>
> Martin Záruba
>
> Dne 18.12.2024 v 14:12 Jirka Mww napsal(a):
>> 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
>>
>>
>> st 18. 12. 2024 v 14:09 odesílatel Miroslav Mraz
>> <mrazik na volny.cz> napsal:
>>
>> Už dlouho s AVR nedělám, ale pořád mám nástroje, tak jsem trochu
>> experimentoval.
>> Mějme nějaká data v RAM (const je zde nepodstatné) např.
>> static const uint8_t RX_Data[] = { 0x90, 0xab, 0xcd, 0xef,
>> 0xab, 0xcd,
>> 0xef, 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef,};
>> a funkci
>> static void test_swap () {
>> const uint32_t PowerIO = __builtin_bswap32 (((uint32_t
>> *)(RX_Data +
>> 7))[0]);
>> printf("0x%08lX\n", PowerIO);
>> }
>> Funguje to správně, ale na 8-bitu to není příliš efektivní.
>> Funkce
>> static void test_shift () {
>> uint32_t PowerIO = 0ul;
>> const unsigned b = 7u, e = b + sizeof(PowerIO);
>> for (unsigned n=b; n<e; n++) {
>> PowerIO <<= 8;
>> PowerIO |= RX_Data [n];
>> }
>> printf("0x%08lX\n", PowerIO);
>> }
>> funguje stejně a při optimalizaci -Os a pokud jsou data opravdu
>> konstantní a překladač vidí jejich hodnoty už v době
>> překladu, je to
>> daleko efektivnější. Smyčka se rozbalí do jednotlivých kroků,
>> posun o 8
>> bitů chápe překladač jako přechod na jiný byte, takže to
>> jednotlivé byty
>> ze vstupu nasype přesně tam, kam je potřeba a nic víc vlastně
>> nedělá,
>> není to potřeba. Lokální proměnné b,e,n se vůbec neprojeví
>> takže na typu
>> nezáleží.
>>
>> Mrazík
>>
>>
>> On 18. 12. 24 13:26, Pavel Hudeček wrote:
>> > Nedávno jsem potřeboval posílat ven SN procesoru, udělal
>> jsem to takhle:
>> > u64=0ULL;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM5;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM4;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM3;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM2;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM1;
>> > u64 <<= 8; u64 |= SIGROW.SERNUM0;
>> >
>> > Ale vlastně nevím jak je to tam s těma indiánama, možná to
>> má bejt
>> > obráceně, tady mi to naštěstí nevadí:-)
>> >
>> > PH
>> >
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> <http://www.HW.cz>
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored bywww.HW.cz <http://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 <http://www.HW.cz>
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list - sponsored bywww.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/20241218/8cc55128/attachment.htm>
Další informace o konferenci Hw-list