DIGILIGHT
Структуры данных | Макросы | Определения типов | Функции | Переменные
Манипуляции над RGB-пикселами

Элементарное управление светящимися светодоидами Подробнее...

Структуры данных

struct  pixel_t
 Структура, описывающая один пиксель Подробнее...
 

Макросы

#define PIXEL_CNT   cfg.group_of_pixels/*32L*/
 Общее количество пикселов
 
#define PIXEL_CNT_MASK   0x1F
 Битовая маска для выделения битов, достаточных для адресации всех пикселов
 
#define FIXED_COLORS   8
 Количество предопределенных цветов
 
#define FIXED_COLORS_MASK   0x07
 Маска номера цвета аналогично PIXEL_CNT_MASK.
 
#define RED   255, 0, 0
 Чисто красный цвет
 
#define YELLOW   255, 255, 0
 Ярко-желтый цвет
 
#define ORANGE   239, 0x5C, 0
 Оранжевый цвет
 
#define GREEN   0, 255, 0
 Чисто зеленый цвет
 
#define LBLUE   0, 141, 210
 Светлоголубой цвет
 
#define BLUE   0, 0, 255
 Чисто синий цвет
 
#define PURPLE   255, 0, 255
 фиолетовый цвет
 
#define COLOR1   0x3E, 4, 0x70
 Оттенок сиреневого
 
#define WHITE   255, 255, 255
 Белый цвет
 
#define BLACK   0, 0, 0
 Отсутствие свечения
 
#define FADE_DIV   5
 Условная скорость автоматического изменения яркости (чем больше, тем медленнее)
 

Определения типов

typedef struct pixel_t pixel_t
 Структура, описывающая один пиксель
 

Функции

void fade (void)
 Автоматическое изменение яркости всех пикселов Подробнее...
 
uint8_t get_light_cnt (void)
 Подсчет светящихся пикселов Подробнее...
 
void bright_ctrl (uint8_t id, uint8_t bright, int8_t delta)
 Управление яркостью Подробнее...
 
void set_rgb_color (uint8_t pos, uint8_t r, uint8_t g, uint8_t b)
 Пиксел произвольного цвета Подробнее...
 
void set_fix_color (uint8_t pos, uint8_t fix_cid)
 Пиксел одного из фиксированных цветов Подробнее...
 
void rnd_pix (uint8_t fix_cid, int8_t delta)
 Случайный пиксел Подробнее...
 
void off_all_pixels (void)
 Выключение всех пикселов
 

Переменные

pixel_t pixels [MAX_TOTAL_PIX]
 Массив пикселей предельного размера Подробнее...
 
pixel_t pixels []
 массив пикселей Подробнее...
 

Подробное описание

Элементарное управление светящимися светодоидами

Пиксел - это альтернативное название одного свтодиода WS2812, принятое в проекте. Все пикселы рассматриваются, как одна линейка, хотя физически они могут располагаться произвольно. При описаниях эффектов (см. Визуальные эффекты цветомузыки) подразумевается, что все пикселы расположены в одну линейку. Управление пикселами ведется раздельно для цвета и яркости, что позволяет оптимизировать функции создания эффектов.

Функции

◆ bright_ctrl()

void bright_ctrl ( uint8_t  id,
uint8_t  bright,
int8_t  delta 
)

Управление яркостью

Управление параметрами яркости пиксела

Аргументы
idномер проверемого пиксела (менее PIXEL_CNT)
brightзадаваемый уровень яркости
deltaзадаваемый уровень скорости изменения яркости
Заметки
Если delta меньше нуля, яркость автоматически будет возрастать до максимума, а затем начнет с тем же темпом уменьшаться до нуля. При положительном значении delta яркость уменьшается. Если delta равно 0, то яркость пиксела с течением времени не меняется

См. определение в файле pixel.c строка 95

Используется в off_all_pixels().

◆ fade()

void fade ( void  )

Автоматическое изменение яркости всех пикселов

При каждом вызове этой функции яркость каждого пиксела изменяется на величину pixel_t.delta - см. fade.

См. определение в файле pixel.c строка 49

Перекрестные ссылки FADE_DIV, PIXEL_CNT и pixels.

◆ get_light_cnt()

uint8_t get_light_cnt ( void  )

Подсчет светящихся пикселов

Функция просто подсчитывает количество светящихся пикселей

Возвращает
количество светящихся пикселей

См. определение в файле pixel.c строка 78

Перекрестные ссылки PIXEL_CNT.

◆ rnd_pix()

void rnd_pix ( uint8_t  fix_cid,
int8_t  delta 
)

Случайный пиксел

Включает пиксел в случайной позиции в указанный цвет и с указанной скоростью затухания

Аргументы
fix_cidномер устанавливаемого цвета (см. #fix_colors)
deltaзадаваемая скорость автоматического изменения яркости
Заметки
Фунция зажигает пиксел только на свободном месте, т.е. если уже светится много пикселов, функция ищет свободное место, что требует времени. Так как автоматическое изменение яркости реализуется вне этой функции, то нельзя вызывать ее в моменты, когда все пикселы светятся - она никогда не завершится!

См. определение в файле pixel.c строка 141

◆ set_fix_color()

void set_fix_color ( uint8_t  pos,
uint8_t  fix_cid 
)

Пиксел одного из фиксированных цветов

Задание цвета пиксела из числа предопределенных цветов

Аргументы
posномер проверемого пиксела (менее PIXEL_CNT)
fix_cidномер устанавливаемого цвета (см. #fix_colors)

См. определение в файле pixel.c строка 124

Перекрестные ссылки pixel_t::r.

◆ set_rgb_color()

void set_rgb_color ( uint8_t  pos,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)

Пиксел произвольного цвета

Цвет пиксела в формате RGB

Аргументы
posномер проверемого пиксела (менее PIXEL_CNT)
rуровень красной составляющей цвета
gуровень зеленой составляющей цвета
bуровень синей составляющей цвета

См. определение в файле pixel.c строка 107

Перекрестные ссылки pixel_t::b, pixel_t::g и pixel_t::r.

Переменные

◆ pixels [1/2]

pixel_t pixels[MAX_TOTAL_PIX]

Массив пикселей предельного размера

массив пикселей

См. определение в файле pixel.c строка 22

Используется в fade().

◆ pixels [2/2]

pixel_t pixels[]

массив пикселей

массив пикселей

См. определение в файле pixel.c строка 22

Используется в fade().