Обсуждаем контроллеры компании Atmel.
Ответить

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

Сб дек 07, 2019 20:35:36

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

на счет ld_script не уверен... хотя надо поизучать, чем отличаются эти скрипты для МК с флешем больше 64К... хотя все равно ведь прошивка и до 32К не дотягивает...

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

Сб дек 07, 2019 21:17:59

ARV писал(а):скрипта на 10 килобайт я не припоминаю...
Группы бег 14s.zip
(578 байт) Скачиваний: 218

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

Сб дек 07, 2019 21:23:10

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

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

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

Вс дек 08, 2019 19:11:08

ARV, проблема оказалась (условно оказалась) в sd-карте, заменил карту на другую и скрипты пошли.
По чему "условно", по чему остальные идут, а эти нет? Вопрос остается открытым.
"Мультирун" теперь на новой sd-карте ведет себя иначе, после выполнения этого скрипта прекращается вывод сообщений в терминал, хотя плеер остается в работе, скрипты последовательно выполняются.

Petit FatFS от Чена, это тоже самое что и основное, просто выкинуто лишнее, не думаю что поможет замена на полно ценную.
Библиотека корявая и это факт, другой нету.

Есть еще вариант с отладчиком JTAG. У меня четвертая студия (не охота скачивать седьмую студию 1,7Гб ради одного контролера), смогу настроить или нет это еще вопрос.

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

Вс дек 08, 2019 20:18:38

Знаете, когда проблема была "условно не решена", она выглядела менее загадочно... Как связана карта со скриптом?!

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

Вс дек 08, 2019 20:51:01

ARV писал(а): Как связана карта со скриптом?!
я несколько раз проделал одну и ту же операцию, факт остается фактом.
Старая 2Гб новая 512Мб(в старом телефоне случайно нашел).

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

Вс дек 08, 2019 21:35:27

хм... ща заменю свою 128 мегабайтную карту на 2Г - погляжу, что изменится.

Добавлено after 26 minutes 10 seconds:
Ну что ж, я проверил на карте 2Г: отформатировал в FAT32 с размером кластера по умолчанию, скопировал все скрипты с предыдущей карты 128Мб... все скрипты ведут себя абсолютно идентично, в том числе, и "мультирун".

Dimon456, вы попробуйте свой диагностический вывод убрать совсем - может, дело в нем?

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

Пн дек 09, 2019 14:39:32

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

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

Пн дек 09, 2019 18:54:51

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

Скоро, скоро отпишусь.

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

Пн дек 09, 2019 19:48:04

делюсь еще одним матричным эффектом:
Код:
ПОТЁКИ
CLR
_R=FF VR=FF
VD=FF VD/06 VD+01
RPT
  RPT
    VT=RD VT%06 VT*VD
  LVT=VC
  VC=VT
  V1=50
  RPT
    V0=TC
    MRD
    RPT
      MR=01
      PP=V0 PB=FF
      MR=00
      I_R=00 IRD<15 PI=VC EI EI
      I_G=00 IRD<15 PI=VC EI EI
      I_B=00 IRD<15 PI=VC EI EI
      PM=V0
    LV0
    WT=07
  LV1
INF
неторопливый такой :)

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

Пн дек 09, 2019 20:44:34

ARV писал(а):Dimon456, вы попробуйте свой диагностический вывод убрать совсем - может, дело в нем?
Да, дело в нем, после выполнения скрипта мультирун printf_P перестает работать однозначно. Это и в протеусе видно, после нескольких безрезультатных попыток вызова printf_P происходит ребут контроллера. Уж не помню что протеус пишет, но выход за пределы SRAM. Вот на этом участке кода
Спойлерbrge .+14 ; 0x3d8c <fputc+0x46>
ld r30, Y
ldd r31, Y+1 ; 0x01
movw r24, r30
adiw r24, 0x01 ; 1
std Y+1, r25 ; 0x01
st Y, r24
st Z, r17
Пришлось свой printf_P написать, в протеусе работает, в железе завтра проверять буду.

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

Вт дек 10, 2019 17:39:56

Проверил в железе, результат устраивает, перезагрузок нет, зависаний нет, вывод в терминал есть.
Но все равно, это не выход из положения. Что-то в этой 128меге не так.
Добавил электронную проверку наличия карты
Спойлер
Код:
#define SD_present()   sd_check()

BYTE sd_check(void) {
  BYTE i = 100;
  do {
    send_cmd(CMD55, 0);
    if(send_cmd(ACMD41, 0x40000000) == 0) return 0;
  } while(--i);
  return 1;
}
Работает идеально
так делать нельзя: если в момент чтения конфига или поиска файла вы вытащите карту, плейер никогда не узнает, что её нет, т.к. не сможет отличить ошибку чтения от ошибки отсутствия. в итоге эффект по умолчанию не включится, и выглядеть это будет, как зависание.

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

Вт дек 10, 2019 18:42:35

вообще-то у Чена где-то внутри disk_initialize есть такая проверка, но как-то уж у него лихо там идет переопределение результатов функций, что я утерял нить... если разобраться, то можно просто при получении !FS_OK посмотреть внутрь структуры FATFS и увидеть, что именно там не так... но сейчас совсем нет возможности копаться в коде...

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

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

Вт дек 10, 2019 19:06:01

Тогда надо ваш код изменять
Код:
if(pf_open(script.fname) == FR_OK){
Код:
FRESULT pf_open (
   const char *path   /* Pointer to the file name */
)
и в зависимости от возврата
typedef enum {
   FR_OK = 0,         /* 0 */ успешное завершение функции
   FR_DISK_ERR,      /* 1 */ произошла невосстановимая ошибка на низком уровне (функции I/O диска)
   FR_NOT_READY,      /* 2 */ некорректного извлечения носителя или ошибка функции disk_initialize
   FR_NO_FILE,         /* 3 */ файл не найден
   FR_NOT_OPENED,      /* 4 */  файл не был открыт
   FR_NOT_ENABLED,      /* 5 */ не смонтирован диск
   FR_NO_FILESYSTEM   /* 6 */ на диске нет допустимого тома с файловой системой FAT
} FRESULT;
уже выбирать то или иное действие
Мне переписать или как?

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

Вт дек 10, 2019 19:11:19

я не об этом говорил... где-то внутри структуры FATFS есть какое-то поле, которое то ли обнуляется при ошибках доступа на уровне "диска", то ли наоборот, заFF-ливается... при "нормальных" ошибках файлового доступа это поле содержит какое-то "корректное" значение. вот и надо найти это поле и сравнивать его с корректным значением в SD_present - так будет лучше всего, имхо.

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

Пт дек 13, 2019 05:07:20

Парни!
Есть гирлянда из 50 пикселей. Что посоветуете: разрезать на матрицу 5х10 или оставить как есть?

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

Пт дек 13, 2019 08:10:53

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

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

могу посоветовать сделать, как я: сделать полоски по 5 светиков с небольщими разъемами по краям. тогда их можно соединить последовательно, а можно и "матрицей" (если добавить дополнительные соединительные проводки). то есть сделать "так" и посмотреть, а потом сделать "этак" и тоже посмотреть. и выбрать, что лучше :)

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

Пт дек 13, 2019 12:57:25

если вешать на ёлку, то лучше матрицей.

Да, именно на елку. Услышал, спасибо.
Теперь другой вопрос: где располагается первый пиксель?

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

Пт дек 13, 2019 13:15:13

который ближе к плейеру, тот и первый

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

Пт дек 13, 2019 13:17:21

который ближе к плейеру, тот и первый

Понял. А направление столбцов?
Ответить