0 голосов

Привет!

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

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.2 тыс. баллов) 4 19 52

2 Ответы

0 голосов
масштабируйте "Index" и будет наоборот.
(403 баллов) 2 5 17
Надо не наоборот, а друг навстречу другу))
0 голосов

Возможно 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;
					}
				}

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

    70 балл(ов)

  2. Un_ka

    64 балл(ов)

  3. sser

    38 балл(ов)

  4. Тигрыч

    10 балл(ов)

  5. Kiprais

    9 балл(ов)

  6. N08I40K

    8 балл(ов)

Награды месяца
1-е место: Raspberry Pi 3 Model A+
2-е место: Raspberry Pi Zero W
3-е место: Raspberry Pi Zero

...