+1 голос

Привет!

Есть такой код:

LED_array_HSV[index].S = 0;
				LED_array_HSV[index].V = max_brightness;

				if (!index)
				{
					*mode = fade;
				}

				while((LED_qty - 1) - index)
				{
					LED_array_HSV[++index].V--;

					if (LED_array_HSV[index].V == min_brightness) 
					{
						break;
					}
				}

Где LED_array_HSV[] - это массив структур:

 typedef struct
 {
	uint16_t	H;	/* Hue */
	uint8_t	S;	/* Saturation */
	uint8_t	V;	/* Value */
 } HSV_t;

Index - текущий светодиод в ленте, LED_qty - их общее количество. Обход начинается со старшего индекса и до нуля. И далее режим меняется на:

*mode = fade;

Этот код порождает комету с длинным исчезающим хвостом (количество светодиодов равно (max_brightness - min_brightness). 

А как надо модифицировать код, чтобы получилось две кометы, летящие друг на друга?

(2.7 тыс. баллов) 10 29 55

2 Ответы

+1 голос
масштабируйте "Index" и будет наоборот.
(593 баллов) 4 8 19
Надо не наоборот, а друг навстречу другу))
+1 голос

Возможно sser имел ввиду, что если направить "комету" в другую сторону и поставить этот код на равные с данными то получится две кометы, летящие друг на друга.

LED_array_HSV[ LED_qty - index].S = 0;
				LED_array_HSV[LED_qty-index].V = max_brightness;

				if (!(LED_qty-index))
				{
					*mode = fade;
				}

				while(LED_qty-index)
				{
					LED_array_HSV[(LED_qty-index)+1].V--;

					if (LED_array_HSV[LED_qty-index].V == min_brightness) 
					{
						break;
					}
				}

(3.1 тыс. баллов) 15 20 41
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.

    За этот месяц ещё никого.

    ...