Обсуждаем контроллеры компании Atmel.
Сб дек 07, 2019 20:35:36
скрипта на 10 килобайт я не припоминаю... но размер скрипта не играет роли, т.к. он кэшируется в 512 байтном буфере, т.е. все килобайты, сколько б их там не было, будут читаться по 512 байт, считанное будет исполняться, потом будет считываться следующий кусок и т.д. единственное, что при этом будет - некоторое замедление эффекта в моменты считывания. в принципе, задежки будут составлять единицы миллисекунд и на глаз могут быть никак не заметны... если на границе этих 512-байтных блоков не будет команд цикла - будет наверняка незаметно.
на счет ld_script не уверен... хотя надо поизучать, чем отличаются эти скрипты для МК с флешем больше 64К... хотя все равно ведь прошивка и до 32К не дотягивает...
Сб дек 07, 2019 21:17:59
ARV писал(а):скрипта на 10 килобайт я не припоминаю...
Сб дек 07, 2019 21:23:10
ох ты ж, блин!
но я не каждый скрипт тут просматриваю - раз вопросов никто не задавал, я и не обращал внимания.
этот скрипт был "нарисован", потому такой большой - он "не портабельный", т.е. жестко расчитан на одну-единственную конфигурацию пикселов...
между прочим, "мультирун" и у меня далеко не с первой попытки заработал - тоже вис наглухо. но тот вариант, что я выложил, работает четко. честно говоря, ситуация загадочная... но разбираться уже некогда - отложим на будущий год
Вс дек 08, 2019 19:11:08
ARV, проблема оказалась (условно оказалась) в sd-карте, заменил карту на другую и скрипты пошли.
По чему "условно", по чему остальные идут, а эти нет? Вопрос остается открытым.
"Мультирун" теперь на новой sd-карте ведет себя иначе, после выполнения этого скрипта прекращается вывод сообщений в терминал, хотя плеер остается в работе, скрипты последовательно выполняются.
Petit FatFS от Чена, это тоже самое что и основное, просто выкинуто лишнее, не думаю что поможет замена на полно ценную.
Библиотека корявая и это факт, другой нету.
Есть еще вариант с отладчиком JTAG. У меня четвертая студия (не охота скачивать седьмую студию 1,7Гб ради одного контролера), смогу настроить или нет это еще вопрос.
Вс дек 08, 2019 20:18:38
Знаете, когда проблема была "условно не решена", она выглядела менее загадочно... Как связана карта со скриптом?!
Вс дек 08, 2019 20:51:01
ARV писал(а): Как связана карта со скриптом?!
я несколько раз проделал одну и ту же операцию, факт остается фактом.
Старая 2Гб новая 512Мб(в старом телефоне случайно нашел).
Вс дек 08, 2019 21:35:27
хм... ща заменю свою 128 мегабайтную карту на 2Г - погляжу, что изменится.
Добавлено after 26 minutes 10 seconds:
Ну что ж, я проверил на карте 2Г: отформатировал в FAT32 с размером кластера по умолчанию, скопировал все скрипты с предыдущей карты 128Мб... все скрипты ведут себя абсолютно идентично, в том числе, и "мультирун".
Dimon456, вы попробуйте свой диагностический вывод убрать совсем - может, дело в нем?
Пн дек 09, 2019 14:39:32
вот что меня немного беспокоит: я разослал 4 платы плейера, и часть даже с почти полным комплектом компонентов, а ни один из получателей до сих пор в теме не отметился, как "сборщик"... уж праздник близится, а отзывов все нет
Пн дек 09, 2019 18:54:51
вот что меня немного беспокоит: я разослал 4 платы плейера, и часть даже с почти полным комплектом компонентов, а ни один из получателей до сих пор в теме не отметился, как "сборщик"... уж праздник близится, а отзывов все нет
Скоро, скоро отпишусь.
Пн дек 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
неторопливый такой
Пн дек 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 написать, в протеусе работает, в железе завтра проверять буду.
Вт дек 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;
}
Работает идеальнотак делать нельзя: если в момент чтения конфига или поиска файла вы вытащите карту, плейер никогда не узнает, что её нет, т.к. не сможет отличить ошибку чтения от ошибки отсутствия. в итоге эффект по умолчанию не включится, и выглядеть это будет, как зависание.
Вт дек 10, 2019 18:42:35
вообще-то у Чена где-то внутри disk_initialize есть такая проверка, но как-то уж у него лихо там идет переопределение результатов функций, что я утерял нить... если разобраться, то можно просто при получении !FS_OK посмотреть внутрь структуры FATFS и увидеть, что именно там не так... но сейчас совсем нет возможности копаться в коде...
если у вас така возможность есть - попробуйте найти, чтобы своих доделок не добавлять.
Вт дек 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;
уже выбирать то или иное действие
Мне переписать или как?
Вт дек 10, 2019 19:11:19
я не об этом говорил... где-то внутри структуры FATFS есть какое-то поле, которое то ли обнуляется при ошибках доступа на уровне "диска", то ли наоборот, заFF-ливается... при "нормальных" ошибках файлового доступа это поле содержит какое-то "корректное" значение. вот и надо найти это поле и сравнивать его с корректным значением в SD_present - так будет лучше всего, имхо.
Пт дек 13, 2019 05:07:20
Парни!
Есть гирлянда из 50 пикселей. Что посоветуете: разрезать на матрицу 5х10 или оставить как есть?
Пт дек 13, 2019 08:10:53
если вешать на ёлку, то лучше матрицей. если гирлянда будет урашать что-то другое, то тут можно и так и этак: матрицей хорошо украшать стену или окно, гирляндой хорошо украшать какой-то предмет (шкаф, например, диван или ковер на стене).
гирлянда для елки тоже пойдет, но смотреться будт эффекты в основном только "бегающиие" или "мигающие", эффекты с "катинками" будут выглядеть странно, например, мой "шарик" будет выглядеть, как набор дергающихся полосок, скачущих без видимого порядка.
могу посоветовать сделать, как я: сделать полоски по 5 светиков с небольщими разъемами по краям. тогда их можно соединить последовательно, а можно и "матрицей" (если добавить дополнительные соединительные проводки). то есть сделать "так" и посмотреть, а потом сделать "этак" и тоже посмотреть. и выбрать, что лучше
Пт дек 13, 2019 12:57:25
если вешать на ёлку, то лучше матрицей.
Да, именно на елку. Услышал, спасибо.
Теперь другой вопрос: где располагается первый пиксель?
Пт дек 13, 2019 13:15:13
который ближе к плейеру, тот и первый
Пт дек 13, 2019 13:17:21
который ближе к плейеру, тот и первый
Понял. А направление столбцов?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.