Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
void set_led_color(unsigned int hue)
{
// sector specifies which colors are primary and secondary
unsigned char sector = hue / 0xff;
// primary color is always full
const unsigned char primary = 0xff;
// calculate secondary color value from hue
unsigned char secondary = abs(sector % 2 * 0xff - hue % 0xff);
// тут идёт 6 кейсов sector и установка PWM на полученные значения
}
TeX-коды в топик включил в порядке эксперимента. Если есть способ делать это удобнее или правильнее — намекните в ПМ.
__attribute__ ((__packed__))
— лишние. Eсли вам нужна оптимизация по размеру, то разумно так и указать это в опциях для компилятора. «Пакование» структур в явном виде применяется в более специфичных случаях (например, когда нужно обеспечить бинарную переносимость структуры в независимости от опций компилятора).Arduino упомянут как самый популярный девайс на хабре, использующий AVR [...]
__attribute__
), поэтому совершенно ни к чему не привязан, да и мир не заканчивается на AVR и ARM. А FPU лишены большинство микроконтроллеров.__attribute__ ((__packed__)) для RGB_t прописан для совместимости вот с этим кодом [...]
Оптимизация преобразования HSV в RGB для микроконтроллеров