[uquote="GARMIN",url="/forum/viewtopic.php?p=4561397#p4561397"]Так я её показал выше, тебе не было интересно.
Микроконтроллеры самые разные, STM32F051, 071, GD32...[/uquote]
Интересно, очень интересно (крайняя вариация моей проги основана на твоем приведенном выше коде). Я не профи в микроконтроллерах, так изучаю для ... (ну для зарядки мозгов). Поэтому многое в твоей функции непонятно:
-s32 h = hsv->h; переменная h обьявлена как знаковая, но какая интежер, дабл...? , и тутже непонятка в каком диапазоне у тебя hsv.h? Так как далее идет проверка на отрицательное значение , как h может быть отрицательным ведь обычно 0<=h<=359.
ws2812b не плавное переключение цветов
- Реклама
- GARMIN
- Держит паяльник хвостом
- Сообщения: 954
- Зарегистрирован: Вс дек 02, 2012 16:58:33
- Откуда: от туда
- Контактная информация:
Re: ws2812b не плавное переключение цветов
[uquote="mab72",url="/forum/viewtopic.php?p=4561429#p4561429"]-s32 h = hsv->h; переменная h обьявлена как знаковая , и тутже непонятка в каком диапазоне у тебя hsv.h? Так как далее идет проверка на отрицательное значение , как h может быть отрицательным ведь обычно 0<=h<=359.[/uquote]
цвет при вычислениях может переполняться. Тогда его нужно приводить в нормальный вид 0<=h<=359
Код: Выделить всё
typedef s32 int32_t
typedef u32 uint32_t
typedef s16 int16_tКод: Выделить всё
typedef struct
{
u8 r; // 0..255
u8 g; // 0..255
u8 b; // 0..255
} rgb_t;
typedef struct
{
s16 h; // -359..359
u8 s; // 0..255
u8 v; // 0.255
} hsv_t;Re: ws2812b не плавное переключение цветов
Уфф... задымился. Как цвет при вычислении может переполниться если входные данные не могут быть больше 360 и меньше нуля? А что дает вращение от -359 до 359 почему не ограничиться 0-359?
- GARMIN
- Держит паяльник хвостом
- Сообщения: 954
- Зарегистрирован: Вс дек 02, 2012 16:58:33
- Откуда: от туда
- Контактная информация:
Re: ws2812b не плавное переключение цветов
hue - это просто угол направления в цветовой палитре. У меня цвета алгоритмические, и прибавление или вычитание угла к произвольному цвету может выйти за пределы нормального диапазона. Это можно программно отследить, но алгоритм делался устойчивым к ошибкам.
Re: ws2812b не плавное переключение цветов
Всем доброго времени.
Переписал все заново, переосмыслив и подумав. И таки заработало. Спасибо всем. За функцию переобразования ХаСэВэ в ЭрЖэБИ отдельное спасибо GARMIN
Переписал все заново, переосмыслив и подумав. И таки заработало. Спасибо всем. За функцию переобразования ХаСэВэ в ЭрЖэБИ отдельное спасибо GARMIN
- Реклама

