Arduino - 32 bitu promenna ze 4 byte
Miroslav Mraz
mrazik na volny.cz
Čtvrtek Prosinec 19 15:33:18 CET 2024
Snad jde, ale možná to úplně nechápu o co jde
static Console console;
static const uint8_t RX_Data[] = { 0x90, 0xab, 0xcd, 0xef, 0xab, 0xcd,
0xef, 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef,};
namespace fmt {
void print () { // ukončení rekurze když už žádný parametr nezbyl
console << "\n";
}
template<typename First, typename ... Rest>
void print (const First & first, const Rest & ... rest) {
console << first;
print (rest ...);
}
template<typename First>
void print(const First & first ) {
console << first;
print();
}
};
void test () {
const uint32_t PowerIO = __builtin_bswap32 (((uint32_t *)(RX_Data +
7))[0]);
fmt::print(RX_Data[7], RX_Data[8], RX_Data[9], RX_Data[10], PowerIO);
}
Jde to přeložit i pro AVR a výstup pak může být
0x12,0x34,0x56,0x78,0x12345678,
Vzal jsem to z jakéhosi starého příkladu, Console je něco jako
std::cout, formátování čísel je jiné. Ale nepoužil bych to. Protože je
to divné, dost nečitelné a je v tom rekurze.
Mrazík
On 19. 12. 24 14:46, Pavel Hudeček wrote:
> ...
> Nejde template s ... abych udělal funkci co má libovolný počet
> parametrů, aniž by tam byl navíc první, ze kterýho plyne kolik je těch
> dalších.
>
> PH
Další informace o konferenci Hw-list