Stránka 1 z 2
3 byte to long
Napsal: 30 pro 2022, 10:50
od Ludek
Zdravím před Silvestrem.
prosím o radu, nemohu dát dohromady číslo a nevím, jak s tím.
Jde mi o nastavení proměnné pro barvu WS2812, kterou chci tvořit z proměnných
mám byte RR (0 - 255) a to samé byte GG a byte BB - jako to udělat aby výsledek byl COLOR = 0xRRGGBB
díky
Re: 3 byte to long
Napsal: 30 pro 2022, 11:24
od jankop
Kód: Vybrat vše
unsigned long COLOR=RR*65536+GG*256+BB;
Re: 3 byte to long
Napsal: 30 pro 2022, 12:10
od Ludek
Jejda... jdu to zkusit
dík
Re: 3 byte to long
Napsal: 30 pro 2022, 12:50
od Ludek
OJ KDE MÁM CHYBU?
Ty byte mám RR=0xAA GG=0xBB BB=0xCC
a výsledek je :
0xA9BBCC
Re: 3 byte to long
Napsal: 30 pro 2022, 13:15
od jankop
Re: 3 byte to long
Napsal: 30 pro 2022, 13:35
od Ludek
HA HEUREKA !
já to měl jako byte, to nefungovalo, pak jako int, to taky nefungovalo.
Díky za radu - s uint16_t to šlape
asi se to nikdy nenaučím, co se k sobě hodí za formáty.
Tak hezkého Silvestra !
Re: 3 byte to long
Napsal: 30 pro 2022, 14:55
od gilhad
Já osobně cítím jako intuitivnější takovýto zápis
Kód: Vybrat vše
unsigned long COLOR=RR*0x10000+GG*0x100+BB;
Re: 3 byte to long
Napsal: 30 pro 2022, 16:08
od kiRRow
Další způsob jak to tam naládovat je pomocí bitových posuvů
Kód: Vybrat vše
unsigned long COLOR = ((RR<<8)+GG<<8)+BB;
Re: 3 byte to long
Napsal: 30 pro 2022, 17:49
od jankop
Ludek píše: ↑30 pro 2022, 13:35
HA HEUREKA !
Díky za radu - s uint16_t to šlape
asi se to nikdy nenaučím, co se k sobě hodí za formáty.
Tak hezkého Silvestra !
uint16_t je totéž jako
unsigned integer
Je to jen zkrácený zápis. Nehledej v tom nic jiného.
Re: 3 byte to long
Napsal: 30 pro 2022, 17:57
od AstroMiK
Není "uint16_t" málo, když se tam má nacpat 24-bitové číslo?