Например TDA7294

Форум РадиоКот • Просмотр темы - ws2812b не плавное переключение цветов
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 29, 2025 22:12:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 25 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ws2812b не плавное переключение цветов
СообщениеДобавлено: Пт мар 29, 2024 21:57:19 
Открыл глаза

Зарегистрирован: Сб мар 26, 2016 01:01:31
Сообщений: 49
Рейтинг сообщения: 0
Так я её показал выше, тебе не было интересно.
Микроконтроллеры самые разные, STM32F051, 071, GD32...


Интересно, очень интересно (крайняя вариация моей проги основана на твоем приведенном выше коде). Я не профи в микроконтроллерах, так изучаю для ... (ну для зарядки мозгов). Поэтому многое в твоей функции непонятно:
-s32 h = hsv->h; переменная h обьявлена как знаковая, но какая интежер, дабл...? , и тутже непонятка в каком диапазоне у тебя hsv.h? Так как далее идет проверка на отрицательное значение , как h может быть отрицательным ведь обычно 0<=h<=359.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ws2812b не плавное переключение цветов
СообщениеДобавлено: Пт мар 29, 2024 22:08:39 
Держит паяльник хвостом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 205
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 936
Откуда: от туда
Рейтинг сообщения: 0
-s32 h = hsv->h; переменная h обьявлена как знаковая , и тутже непонятка в каком диапазоне у тебя hsv.h? Так как далее идет проверка на отрицательное значение , как h может быть отрицательным ведь обычно 0<=h<=359.


Код:
typedef s32 int32_t
typedef u32 uint32_t
typedef s16 int16_t

цвет при вычислениях может переполняться. Тогда его нужно приводить в нормальный вид 0<=h<=359
Код:
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 не плавное переключение цветов
СообщениеДобавлено: Пт мар 29, 2024 23:41:32 
Открыл глаза

Зарегистрирован: Сб мар 26, 2016 01:01:31
Сообщений: 49
Рейтинг сообщения: 0
Уфф... задымился. Как цвет при вычислении может переполниться если входные данные не могут быть больше 360 и меньше нуля? А что дает вращение от -359 до 359 почему не ограничиться 0-359?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ws2812b не плавное переключение цветов
СообщениеДобавлено: Сб мар 30, 2024 13:53:56 
Держит паяльник хвостом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 205
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 936
Откуда: от туда
Рейтинг сообщения: 0
hue - это просто угол направления в цветовой палитре. У меня цвета алгоритмические, и прибавление или вычитание угла к произвольному цвету может выйти за пределы нормального диапазона. Это можно программно отследить, но алгоритм делался устойчивым к ошибкам.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ws2812b не плавное переключение цветов
СообщениеДобавлено: Пт апр 12, 2024 18:50:45 
Открыл глаза

Зарегистрирован: Сб мар 26, 2016 01:01:31
Сообщений: 49
Рейтинг сообщения: 0
Всем доброго времени.
Переписал все заново, переосмыслив и подумав. И таки заработало. Спасибо всем. За функцию переобразования ХаСэВэ в ЭрЖэБИ отдельное спасибо GARMIN


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 25 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y