if (pos % 2 != 0) // если чётная строка
if (REVERSE) leds[pos * HEIGHT + HEIGHT - j - 1] = color; // заливаем в обратном/прямом порядке
else leds[pos * HEIGHT + j] = color;
else // если нечётная
if (REVERSE) leds[pos * HEIGHT + j] = color; // заливаем в прямом/обратном порядке
else leds[pos * HEIGHT + HEIGHT - j - 1] = color;
if (pos % 2 != 0) // если чётная строка
{
if (maxLevel[pos] > HEIGHT) maxLevel[pos] = HEIGHT;
leds[pos * HEIGHT + HEIGHT - maxLevel[pos]] = MAX_COLOR; // заливаем в прямом порядке
} else { // если нечётная
if (maxLevel[pos] >= HEIGHT) maxLevel[pos] = HEIGHT-1;
leds[pos * HEIGHT + maxLevel[pos]] = MAX_COLOR; // заливаем в обратном порядке
Нет, тут дело в размерности фильтра тонов, как мне думается. Ваши корректировки в эффектах по WIDTH и HEIGHT я не трогал.@rufat66, неправильно выставлено видимо где то в коде ширина/высота. Выше примеры кусков кода отвечающих за это, надо все проверить и попробовать менять для тестов. либо 32 полосы просто не могут быть сделаны в прошивке, там вроде столько полос даже в фильтре нету.
Так, чего то я запутался... WIDTH (вертикальные столбики) у вас 8 или 32?Если поставить 32 полосы, анализатор превращается в кашу, а режиме лампы вся матрица работает нормально. Анализатор начинает работать если в настройках выставить 15 полос.
//Ширина спектра (0 - 16 кГц, 1 - 6.4 кГц)
#define SPECTRUM 1
#if (SPECTRUM == 0)
#define FHT_N 256 // ширина спектра х2
byte posOffset[31] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120};
#else
#define FHT_N 128 // ширина спектра х
byte posOffset[31] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120};
#endif
Скетч использует 17214 байт (56%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1989 байт (97%) динамической памяти, оставляя 59 байт для локальных переменных. Максимум: 2048 байт.
#define WIDTH 32 // ширина матрицы (число диодов) количество полос
#define HEIGHT 8 // высота матрицы (число диодов) высота полос
#define FHT_N 256 // ширина спектра х2
byte posOffset[65] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 60, 80, 100, 120, 140, 150, 170, 190, 230, 240, 290, 320, 360, 390, 420, 460, 500, 560, 650, 720, 800, 900, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 7000, 8000, 9000, 10000, 12500}; //оригинал AlexGyver для 16 полос
А она и не будет включаться. Там надо код под 128 править.при уменшьении размера массива с 256 на 128, не включается совсем.
А 65 вы откуда взяли???rufat66 написал(а):
byte posOffset[65]