коллеги, вот мои пояснения, возможно, отвечающие на ряд ваших вопросов:
1. плейер задумывался, как простое устройство, подходящее для всего на свете. т.е. в первую очередь простое, а во вторую многофункциональное. схема вышла элементарная, сравните с "крутизной":
https://cxem.net/sound/light/light132.php , а возможности почти такие же. думаю, цель достигнута.
2. концептуально было установлено ограничение в 254 светодиода - из-за формата языка скриптов, в котором любые данные отображаются только двумя символами (данные - это и переменные, и функции и числа). при помощи двух символов невозможно записать число больше 255 (в 16-ричной системе), а так как требуется обеспечить контроль "границ" (т.е. надо отличать последний существующий пиксел от уже недоступного, не существующего), то предел количества пикселов 254, и перешагнуть его без кардинальной переделки всего алгоритма (или без кардинального геморроя в языке по типу "страниц" пикселов) невозможно. поэтому DIGISCRIPT никогда не сможет работать с бОльшим количеством светодиодов, даже если взять "большую" мегу и даже если ее разогнать вдвое. можно лишь реализовать "мозаичное" управление, т.е. тупо повторять 5 раз содержимое 160 пикселов, и тем самым засвечивать 800 штук светодиодов... в некоторых случаях это может быть даже красиво.
3. по поводу карты.
Serzh2000, спросите своих друзей: как бы они себе представляли без карты изменять количество и виды эффектов? карта сейчас есть у каждого, причем явно не в единственном экземпляре (плейеров море, фотиков, в смартфоне есть 100%) - на день-другой переставить её в плейер, а потом юзай, как раньше - чего дорого-то? посмотрите на ссылку, которую я дал выше - там, не смотря на крутизну, тоже применяется карта, но там вы все равно связаны по рукам и ногам теми эффектами, которые за вас придумал автор, ибо создать что-то свое даже при помощи "настоящих" программ (которые даже видео умеют конвертировать в эффекты) получится у одного из тысячи... слишком там все круто, вряд ли кто ради одной новогодней ночи станет заморачиватьсяя так сильно.
4. по поводу карты еще. поскольку даже в 32-й меге почти половина памяти остается незанятой, можно немного подкорректировать код и сделать воспроизведение набора скриптов, записанных жестко во flash контроллера. в среднем эффект занимает порядка 600 байт, поэтому штук 15 эффектов влезет запросто в "остатки памяти". это превратит DIGISCRIPT в обычный автомат световых эффектов с "жестким" алгоритмом, по принципу устройства ув.
Riniy. наконец, при минимальных переделках можно применить внешнюю SPI-память, но вот с "удобством" её прошивки эффектами придется бороться самостоятельно... встроенная в AVR EEPROM слишком мала даже в "больших" мегах, чтобы туда прописывать эффекты - влезет слишком мало.
Добавлено after 12 minutes 57 seconds:
Serzh2000 писал(а):в свете последних обновлений
где появились ХХ...
становится трудно, мутно и не понятно ( к примеру эффект флаг я так и не смог сделать сам
без помощи ARV )
Serzh2000, во флаге нет XX... поддержка XX появилась совсем недавно, и множество эффектов, которые всем нравились, были без этого реализованы. все новшества не отменяют ранее привычного, так что не можете разобраться - да и не напрягайтесь, у вас салют и без XX получился весьма неплохим.
что касается флага, то, как вы наверняка догадались, скрипт состоит из двух частей: первая рисует сам флаг, а вторая перемещает волны яркости со сдвигом. вот в этом сдвиге основная проблема была у меня: надо было подобрать такую "волну", которая при прокрутке матрицы не искажалась бы (т.е. длина волны должна бять кратной ширине матрицы), причем надо было обеспечить, чтобы на любой ширине матрицы волна сохраняла свои свойства. не уверен, что я этого добился, но если не заморачиваться, а делать ффекты только под себя, можно "жестко" задавать параметры эффекта, и тогда эта волна была бы сделана просто командой BM с количеством данных по ширине матрицы, да и все.
то есть я к чему веду: все эти XX и другие "непонятные навороты" ориентированы на создание эффектов "
на все случаи жизни", если этим не напрягать себя (у вас же матрица зафиксирована раз и навсегда), то написание скрипта будет крайне простым: картинку рисуем в DSM, а потом простыми командами её двигаем или перекрашиваем. именно такова и была первоначальная задумка DSM - скрестить рисование с алгоритмизацией.
Добавлено after 16 minutes 23 seconds:
кстати, хоть и не в тему: исходный код - это практически код готового программного автомата управления чем угодно: код интерпретирования команд построен так, что изменить поведение имеющихся или добавить собственные команды элементарно, и в итоге можно получить контроллер, который "скриптом" будет управлять любыми исполнительными механизмами, например, поливом растений, механизацией инкубатора, небольшим прессом или чем-то еще. ничего сложного в том, чтобы добавить, например, по образу и подобию команды PM еще команду JM (Jet Map), которая будет выводить на внешние порты сигналы управления электроклапанами и насосом - и вот вам готов "прыгающий фонтан"
