МурсиБоку! Завтра постараюсь прочитать, осмыслить и применить. Щас после приема “моск a жопе”… ![]()
Дольше-короче - это все эмоции.
Конкретные интервалы времени выражаются в секундах.
Некоторую информацию могут дать соотношения раньше/позже.
Вот Вы, как доктор, можете поставить диагноз, если нет ни результатов анализов, ни возможности опросить пациента? (вообще нет ничего кроме хрустального шара!)
Можно, например, в самом начале скетча зажечь светодиод и выяснить, пересекаются ли периоды горения светодиода и мигания индикатора.
Можно снять процесс на видео и измерить временные интервалы с точностью порядка 1/30 секунды.
Можно банально измерить время инициализации индикатора, причем, с точностью не хуже 4 мкс. Можно сравнить измеренное время с величиной задержек, содержащихся в процедуре инициализации…
Всё сказанное - чистая правда. Учту. Тут почитал библу уважаемого Владимира (v258). Вроде, серьезный продукт, но по причине моей “квалификации“ многое непонятно. В частности, насколько я умудрился вынести, в ней предполагаются фиксированные пины для подключения max7219. Мне это неудобно с точки зрения перелопачивания всего скетча (с железками-то попроще). Если все это надо проделать ради редуцирования возникшей вздорной проблемы - игра не стоит свечек. Тем не менее, будет время - попробую на простеньком макете это протестировать. Получится - начну кромсать скетч.
Владимир, спасибо! Оказывается, ссылку я уже использовал и библиотека в загашнике.
Сделал и так и сяк и через голову
Результат одинаковый: последовательность элементов инициализации в сетапе роли не играет.
Обычно номера пинов указываются в одном месте в виде константы или дефайна. Соответственно, и перелопачивать ничего не нужно, достаточно поменять цифирь в одном месте.
С другой стороны не понимаю, зачем вообще использовать другие пины, какой выигрыш это дает? Нужно просто изначально проектировать правильно ))
Да, ровно год назад, в подобной теме ))
Похоже, Вы ни слова не поняли из того, что Вам тут я и другие парни советовали ![]()
Друзья, я окончательно запутался, поэтому буду последовательно (“есть слона по частям“) разбираться с проблемой (повторюсь, незначительной). Пока предлагаю дискуссию остановить. Нет сомнений, что у меня возникнут вопросы (точно знаю, что идиотские), тогда и задам их.
Евгений, это действительно так. Увы. Это для Вас просто посмотреть на код и выудить все траблы - простая задача. А для меня сейчас (!) разбор каждой строчки - непременное листание всего скетча: что куда пошло и что из этого вышло. Для примера - был у меня товарищ-радиоинженер (заступись за него Пресвятая Дева). Так он вертел одной рукой плату (не более, чем двустороннюю) и другой рукой тут же рисовал принципиальную схему. Это что-то про Вас. Тем не менее, шаг за шагом я пытаюсь вонзиться в процесс. Беда в нескольких факторах:
- Мало времени (основная работа его жрёт как свинья корм)
- Все-таки, мозг не так заточен на программирование, нежели на основную работу
- “Не дождетесь”, как говорил тот еврей, якобы на смертном одре :), Всё равно добью.
- Лично Вам БОЛЬШОЕ СПАСИБО, Вы многое мне объяснили, пока я на Форуме уже долго извращаюсь по разным поводам.
Просто потому, что Вы не с того конца походите.
Вот Вы говорите:
Хотите открою Вам секрет почему для меня это простая задача?
Только между нами. Это для меня просто потому, что мне не нужно “листать весь скетча: что куда пошло” по той просто причине, что как только у меня возникает проблема вроде Вашей, я немедленно пишу отдельный скетч размером в 3 - 10 строк в котором нет ничего, кроме возникшей проблемы. Его не нужно листать, он весь на экране! И пока я не решу проблему, я даже не прикасаюсь к “большому скетчу”.
Например, если бы у меня была проблема с мерцанием, как у Вас, я бы:
- написал бы скетч из пяти строк, который выводит статические цифирьки;
- если бы это не помогло, написал бы микробиблиотеку 7219 (только то, что нужно для моих цифирек) – не более 20 строк.
И всё! Ни строки больше. И уж в этом как-нибудь разобрался бы. И только потом возвращался бы к большому скетчу.
Вот так это делается. И так это делать легко и не напряжно.
аналагична.
Вы не поверите! Я так и поступаю. Сначала отдельные скетчи ля каждого устройства, отладка, потом уже собираю все вместе. А вот как к мерцанию подобраться - пока не придумал. Выяснил только , что мерцание происходит ДО сетапа, то есть, в момент загрузки. Полагаю, надо питание индикаторов включать после загрузки системы. Ну, это просто - транзюк на клемму питания модулей. Но, по-моему, это неизящный выход. Хотелось бы программно победить.
Программно не получится. Можно сократить время до возможного минимума. Это аппаратная проблема. Подавать напряжение на сегменты после инициализации системы - вполне приемлимое решение.
В момент загрузки скетча? Или при включении питания без загрузки скетча тоже происходит? И как, интересно, Вы это выяснили?
Но, если это, вдруг, правда, то, вот:
но я выдам Вам стандартный,
набивший оскомину вопрос этого форума:
… вырезано цензурой … где … вырезано цензурой … схема … вырезано цензурой … ?
Почему все должны тратить время на дебильнейшие вопросы типа:
- Какой резистор на пине IREF? Если меньше 10к, то поставьте “не меньше”
- Притянут ли пин LOAD(CS) к питанию? Если нет, притяните резистором в 4,7к - 10к
После этого скажите, помогло ли, и, если нет, ещё раз внимательно перечитайте мой “набивший оскомину вопрос”.
Все это проделаю не раньше как через пару дней: сутки на дежурстве.
Не забудьте про главный вопрос этого форума, если что.
Дорогой, да. И я тебе это уже написал. Это нельзя преодолеть программно. Я, опять же, выше написал что не я сам, а вместе с заказчиком в коммерческом проекте мы пытались победить эту беду. Нет решения. Подчеркиваю - заказчик изделия продает и ему архиважно было избавиться от такого поведения. На авр контроллере без бутлоадера до первой подачи команды, которая остановит “цветомузыку” времени проходит значительно меньше, можно даже ничего не заметить. На “взрослых” контроллерах, которые грузятся долго, до первой команды инициализаии индикатор будет моргать черте-как.
нет, снова не верно. На чипе есть ножка 18 для токозадающего резистора. На модуле она недоступна, только при работе с чипом. На неё можно повесить ключ, и подать питание НЕ НА ЧИП, а только на светодиоды, после загрузки системы. Другого решения задачи не существует.
Странно было не принять мой совет с первого сообщения. Я пустословием на форуме никогда не славился. Но Ок. Я обидчивый, но отходчивый. ![]()
Влад, привет. А почему ключ на мосфете для питания модулей не сработает? Irfz44 можно управлять с ардуины через драйвер. Модули в исток, затвор притянуть к земле, последней строкой в сетапе открыть полевик. Вроде, должно сработать…
сработает, но моргнет все равно, у тебя останется временной зазор между тем, как чип запустился, а в регистре вывода все еще мусор. В этом чипе изначально зашита ошибка в том, что он запускается с непогашенным выводом. И нет возможности это изменить.
А так - нормальное решение. Только подбери ключ под потрбление всего модуля. В программе сперва включаешь питание на мол=дуль и опытным путем подбираешь задержку минимальную перед подачей первой команды.
команды, если не библиотекой даешь, то так:
- shutdoun 0
- scan 7
- decode 0
- яркость
- тест 0
- shutdoun 1
то есть первой командой погасил вывод, потом все настройки и потом снова включил вывод. Тест, как тебе и писали - конечно выключить. Но он это не запомнит к следующему включению все равно… Этот чип тем и дерьмов, что у него нет памяти после выключения.
ДШ пишет, что после рестарта экран должен быть пуст… Может быть на оригинальных чипах. Но и чипы у заказчика и модули у меня на стенде после включения не были “пустыми”.
Может быть это контрафакт - но я не видел других чипов. У меня нет основания верить в их существование! ![]()