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). 

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

(1.5 тыс. баллов) 2 11 35

2 Ответы

0 голосов
масштабируйте "Index" и будет наоборот.
(155 баллов) 1 2 14
Надо не наоборот, а друг навстречу другу))
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;
					}
				}

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

    8 балл(ов)

  2. dmipec

    2 балл(ов)

  3. wickiup

    2 балл(ов)

  4. Un_ka

    2 балл(ов)

  5. antonlewz

    1 балл(ов)

  6. Алексей1307

    1 балл(ов)

Награды месяца
1-е место: Arduino MKR GSM 1400
2-е место: Arduino MKR Wi-Fi 1010
3-е место: Arduino MKR Zero

...