Плейер световых эффектов - помогите стать лучше

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

у меня есть 200 шт
Изображение
50 шт.
Изображение
ну и матрица 10х10
Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

вы не поняли: тестировать будете на чем? и какой тип светиков?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

тип WS2811
а тестировать давайте на матрице 10х10
могу спаять WS2811 50 шт. в линию или ??? что скажете WS2812 из 200 штук
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

для теста разницы нет, главное, отработать мои изменения в исходниках. что вам проще, на том и давайте. только прошивка/исходники уже завтра...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

хорошо
тип WS2811 матрица 10х10
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

??? :shock:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

да зашиваюсь я :(
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

хорошо, подождем :tea:
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

Реанимировал на днях один из своих старых компиляторов и прикрутил к нему более компактный набор инструкций, в результате такой скрипт:
Спойлер

Код: Выделить всё

CLR
GB=FF IRD<80 REV EI
VN=05
VD=E0
RPT
  VD+01
  IVD>F0 VD=E0 EI
  V0=VC
  VP=TP
  RPT
    PI=V0
    IV0<VD VB=VD VB-V0 V0=FF V0-VB V0+01 VS=01 EI
    IVS=00 V0-VD EI
    VS=00
    PM=VP
  LVP
  V0=VC
  IV0<VD VB=VD VB-V0 V0=FF V0-VB V0+01 VS=01 EI
  IVS=00 V0-VD EI
  VS=00
  VC=V0
  WT=03
INF
можно переписать как-то так:
Спойлер

Код: Выделить всё

const LedsCount = 80;
clear(0);
gBright = 0xFF;
if(rnd(255) < 0x80) reverse();
int vs, vc, vn = 5, vd = 0xE0;

while(1)
{
	if(++vd > 0xF0) vd = 0xE0;
	int v0 = vc;
	int vp = LedsCount;
	
	while(vp--)
	{
		gPaintIndex = v0;
		if(v0 < vd)
		{
			v0 = 0xFF - (vd - v0) + 1;
			vs = 1;
		}
		if(!vs) v0 -= vd;
		vs = 0;
		paintMap(vp);
	}
	
	v0 = vc;
	if(v0 < vd)
	{
		v0 = 0xFF - (vd - v0) + 1;
		vs = 1;
	}
	
	if(!vs) v0 -= vd;
	vs = 0;
	vc = v0;
	wait(3);
}	
Компилируем и получаем бинарник размером 108 байт(оригинал был 319):
Спойлер

Код: Выделить всё

0000   20           pushk 0
0001   80           call clear
0002   A0FF         pushk10 255
0004   61           popVar 1
0005   A0FF         pushk10 255
0007   82           call rnd
0008   A080         pushk10 128
000A   11           ls
000B   F00E         jne 0x0E
000D   83           call reverse
000E   25           pushk 5
000F   65           popVar 5
0010   A0E0         pushk10 224
0012   66           popVar 6
0013   46           pushVar 6
0014   C1           addi 1
0015   66           popVar 6
0016   46           pushVar 6
0017   A0F0         pushk10 240
0019   12           gt
001A   F01F         jne 0x1F
001C   A0E0         pushk10 224
001E   66           popVar 6
001F   44           pushVar 4
0020   67           popVar 7
0021   A050         pushk10 80
0023   68           popVar 8
0024   48           pushVar 8
0025   48           pushVar 8
0026   E1           subi 1
0027   68           popVar 8
0028   B04A         jmp 0x4A
002A   47           pushVar 7
002B   62           popVar 2
002C   47           pushVar 7
002D   46           pushVar 6
002E   11           ls
002F   F03C         jne 0x3C
0031   A0FF         pushk10 255
0033   46           pushVar 6
0034   47           pushVar 7
0035   01           sub
0036   01           sub
0037   21           pushk 1
0038   00           add
0039   67           popVar 7
003A   21           pushk 1
003B   63           popVar 3
003C   43           pushVar 3
003D   07           not
003E   F044         jne 0x44
0040   47           pushVar 7
0041   46           pushVar 6
0042   01           sub
0043   67           popVar 7
0044   20           pushk 0
0045   63           popVar 3
0046   48           pushVar 8
0047   84           call paintMap
0048   B024         jmp 0x24
004A   44           pushVar 4
004B   67           popVar 7
004C   47           pushVar 7
004D   46           pushVar 6
004E   11           ls
004F   F05C         jne 0x5C
0051   A0FF         pushk10 255
0053   46           pushVar 6
0054   47           pushVar 7
0055   01           sub
0056   01           sub
0057   21           pushk 1
0058   00           add
0059   67           popVar 7
005A   21           pushk 1
005B   63           popVar 3
005C   43           pushVar 3
005D   07           not
005E   F064         jne 0x64
0060   47           pushVar 7
0061   46           pushVar 6
0062   01           sub
0063   67           popVar 7
0064   20           pushk 0
0065   63           popVar 3
0066   47           pushVar 7
0067   64           popVar 4
0068   23           pushk 3
0069   81           call wait
006A   B013         jmp 0x13
Еще нужно допиливать и написать VM, но уже вроде неплохо :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

:))) браво! :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

А насколько конструкции такого типа, именно с большим число параметров, часто используются?

Код: Выделить всё

PM=161718191A1B2021222324252A2B2C2D2E2F3435363738393E3F4041424348494A4B4C4D
Я пока в качестве замены добавил некое подобие байтовых read-only массивов, получается компактнее, чем для функций с переменным числом аргументов:

Код: Выделить всё

var arr = { 22,23,24,25,26,27, 32,33,34,35,36,37, 42,43,44,45,46,47, 52,53,54,55,56,57, 62,63,64,65,66,67, 72,73,74,75,76,77 };
paintMap(arr);
Сами массивы в конце размещаются, а в переменную заносится смещение от начала проги. Можно и в цикле значения перебрать, пока при помощи функции, может потом индексирование при помощи [] добавлю, хотя тип данных один, потому оно будет для всего работать :)

Код: Выделить всё

for(var i = 0; i < 36; i++)			
{
    led = peek(arr, i);
}
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

а ведь кое-кто говорил, что я ерундой маюсь :)))
Reflector писал(а):конструкции такого типа, именно с большим число параметров, часто используются?
лично мне больше нравится алгоритмичекое построение эффекта, но Serzh2000, например, применяет частенько... такие конструкции генерирует программка DSM, где эффекты рисуются покадрово мышкой.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="ARV",url="/forum/viewtopic.php?p=4169336#p4169336"]а ведь кое-кто говорил, что я ерундой маюсь :)))[/uquote]
Я говорил, что к твоему скриптовому языку в его существующем виде нет смысла добавлять еще и процедуры, поможет только полное переписывание :) А у меня функции были, целых 3 вида, и файлы с хедерами инклудились, но все это выпилилось в пользу более компактной системы команд. Хотя теперь не уверен, может стоит все вернуть, ну будет байткод меньше не в 3 раза, а в 2-2.5... Кто что думает?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

ну, лично моё мнение прежнее: для AVR бесперспективно, для STM32 или иных ARM - вероятно...
только все равно есть сомнение: пре-компилируемый скрипт мало чем отличается от захардкоренных в прошивке эффектов, создаваемых на этапе её компиляции. то есть гибкость все дальше отходит от простоты в сторону большого программирования... целесообразность этого сомнительна...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

Скрипты как минимум должны как-то попасть на SD, в EEPROM, флеш или RAM мк, количество дополнительно потраченного времени в случае пре-компилированных скриптов составляет примерно 5 сек, это когда пачка скриптов лежит с папке и ожидает записи на SD, но нужно предварительно запустить утилиту которая за долю секунды скомпилирует их все и записывать будет нужно ту же пачку файлов, но с другим расширением. В остальных случаях разницы вообще никакой. Например, я пишу скрипт, компилирую его и при этом он автоматически загружается в RAM мк и начинается исполнение. Или есть та же пачка скриптов, запускается утилита и получается сишный файл где все скрипты лежат в виде массивов, причем если бы скрипты не были прекомпилированными, но хочется поместить их во флеш, то все равно пришлось бы делать нечто подобное. Хардкордить скрипты прямо в проекте тоже можно, однако кроме автора мало кто будет этим заниматься...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Ну я чо... Я ничо... :dont_know: Если идея пошла в массы - могу ли я быть недоволен?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Serzh2000 »

:shock:
Ramzes
Родился
Сообщения: 7
Зарегистрирован: Пт апр 04, 2008 20:56:06

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Ramzes »

Возможность оперативно остановить перебор эффектов, кнопочка как в автомате Riniy?
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: Плейер световых эффектов - помогите стать лучше

Сообщение dgrett »

{
Ср янв 12, 2022 19:53:58
да зашиваюсь я :( }

ARV, может уже отшились? :)
Возник вдруг вопрос. Если вместо двух мерной матрицы сделать 3хмерную, что получилось бы? Может и эффекты придумать новые, если, конечно, программа позволяет. Но, скорее всего, это будет надо полностью программу менять. Или всё-таки возможно?
4х4х4 или 5х5х5
Я всё-всё узнAю и стану профессором.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

dgrett писал(а):может уже отшились?
не... еще и заболел впридачу...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»