0
Напряжение под нагрузкой проседает до 5,0В (без нагрузки 5,1В). Матрица все таки греется, просто то, что я запитал от другого источника совпало с тем, что я выводил на экран по 1-2 символа, и матрица соответственно не так много потребляла, и драйвера сетодиодов не так сильно грелись. Когда выводишь в бегущую строку много симовлов (в каждый момент времени видно по 4 символа) с большим количеством включенных светодиодов, то пальцем чувствуется, как драйвера раскаляются, выводишь по 1-2 символа, и драйвера еле теплые. Китай короче:)
  • avatar
  • Gnusmas
  • 30 августа 2019, 23:31
0
  • avatar
  • Gnusmas
  • 30 августа 2019, 22:54
0
Все поправил. Благодарю за подсказки. В планах добавить к функции скроллинга возможность плавного вывода символа из «теневого буфера» размеров в 1 символ,. Это позволит используя лишь буфер размером 16 байт выводить строки неограниченной длинны — как только все из теневого буфера выдавилось в отображаемый буфер, заполняем теневой буфер байтами нового символа из флеша. Как вам такой алгоритм?
  • avatar
  • Gnusmas
  • 29 августа 2019, 08:26
0
Да, «DPTR < — #SymbolsTable + 16 * A» однозначно проще и лучше.
Мой способ лучше только в 1 случаем. Если захочется вывести на дисплей пару символов из конца ASCII таблицы, я просто забью промежутки до них 2 байтными заглушками, а в случа с монолитной таблицей придется хреначить по 16 байт-пустышек для всех неиспользуемых символов.
  • avatar
  • Gnusmas
  • 28 августа 2019, 10:56
0
Запитал от мобильной зарядки (5В, 2А), и матрица перестала грется. Даже не пришлось с резисторами возится. Почему так — я не понял.
  • avatar
  • Gnusmas
  • 28 августа 2019, 01:51
0
var1, var2, var3, var4 — вроде пофиксил. Теперь юзаю одну 4 байтную переменную, задаю смещение адреса с помощью +1,+2,+3.
«Неужели на 8051 нет более простого метода для DPTR = SymbolTable + A?» — я не придумал, мозгов не хватило…
  • avatar
  • Gnusmas
  • 28 августа 2019, 01:46
0
Да? Значит плохо смотрел. Надо будет попробовать. Я просто AVR в основном не для души юзаю, а для проектов других людей, а там надо быстро, на Си-шечке…
  • avatar
  • Gnusmas
  • 27 августа 2019, 14:38
0
Мне он зашел из-за макроассемблера, как и асм PIC12/16 (там он тоже на достойном уровне). А вот в AVR с этим не очень, встроеный в AVR Studio убог. Можно правда прикрутить GAS (Gnu Assembled), но мне было лень.
  • avatar
  • Gnusmas
  • 27 августа 2019, 10:27
0
С первым согласен, а вот про второе не понял.
  • avatar
  • Gnusmas
  • 03 ноября 2018, 19:19
0
Не так уж много, НО НУЖНО. А тут всего 1 лишняя команда модулю. Зачем писать ЛИШНИЙ код, если можно обойтись без него благодаря более продуманному алгоритму.
Ну и в заголовке я написал, что «без летнего/зимнего времени все гораздо проще», у меня же оно, увы, пока действует.
  • avatar
  • Gnusmas
  • 03 ноября 2018, 11:23
0
Нет. В результате я знаю, как узнавать время посредством модуля SIMCOM.
  • avatar
  • Gnusmas
  • 02 ноября 2018, 20:43
0
Ну а сам-то ты почему в таком случае не спихнул всю работу на ESP?
Там вроде LUA надо знать, а я не знаю. А асм 8051 знаю. Хотя китайцы свою прошивку ддля STC15 писали скорее всего на Си (в китайских интернетах везде примеры на Си).
И еще более странно в свете того, что программируется он через UART-бутлоадер
Да, я сам без понятия, как (из зачем) они так сделали. Может позиционирование такое, чтобы не мешал старшим моделям. А загрузка по UART осталась, она сделана на каких-то других ресурсах, нежели стандартный UART.
Схему платы тоже положи в аттачи
Приложил LC wifi relay.zip, в нем все что нарыл по этому модулю.
  • avatar
  • Gnusmas
  • 12 октября 2018, 11:31
0
А где та часть, где мимо паровоза старикана проносится маглев с надписями «ARM Corp»? Если бы зеваки были внимательнее, они бы успели заметить в окнах проносящейся мимо них стальной пули счистливые лица пассажиров, находящихся на острие прогресса. Где-то там, между роскошных купе, на полу игрался ардуинкой маленький мальчик. Он воспитывался очень добрыми родителями, которые следовали принципу «до 5 лет можно все», поэтому его никто не трогал и не упрекал, хотя проходящая мимо бортпроводница в форме с логотипом STM32 Cube, снисходительно улыбалась, и поглядывая на мальчика, отметила про себя, что она очень удачно подсадила своего синышку на «дуинку не на базе AVR», и теперь может не опасается за него, оставляя дома одного, когда уезжает на работу.
  • avatar
  • Gnusmas
  • 16 августа 2018, 21:31
0
VGA все правильно сказал. Но вообще, в природе существует 8051-подобный ассемблер для ПИКов. Если интересно, гуглите «parallax pic assembler». Полной совместимостью и не пахнет (да и регистры ясень пень разные), но кому учить 2 асма лень, а Си не хочется — вроде вариант. Я в свое время, начиная изучать ПИКи после 8051, посматривал в его сторону, но потом зачитавшись мануалом на MPASM, решил все таки осваивать «родной» ПИКовский асм, очень уж понравился его мощный макроассемблер. Может еще выложу проект с демонстрацией, чего я умудрился накрутить на нем.
  • avatar
  • Gnusmas
  • 16 августа 2018, 20:44
0
Прошу любителей АРМов не обижатся, на самом деле они не «сраные», просто я еще до них мозгом не дорос.
  • avatar
  • Gnusmas
  • 16 августа 2018, 00:19
0
Откуда столько злобы в таком маленьком тельце ?)) С чего Вы взяли, что я «дядя стэмщик32»? Я вообще пики 12-16 да 8051 люблю по вечерам после работы ковырять. Я облажался? Еще как!!! Я Си только взялся изучать, и я еще столько раз облажаюсь, что просто жуть.
Нормально про «разрядность данных меньше разрядности int» я понял только после прочтения Задачи 12, в которой четко написано «Главное — не забывать приводить разность к нужному размеру если он меньше чем разрядность уменьшаемого, вычитаемого или int». А читать я ее начал гораздо позже, только после того, как попылася сделать задачи 5,6 на «сраном АРМЕ». А делать я это начал только после того, как сделал их на АВР.
  • avatar
  • Gnusmas
  • 16 августа 2018, 00:15
0
Задача 6: увеличить диапазон задержек программного таймера
… Для данных большей разрядности — заменить 240 на нужный диапазон и убрать приведение к uint8_t...
Не знаю почему, но для «сраных армов» в Keil, пришлось делать приведение к uint16_t, иначе периодически возникал длительный затуп в работе таймера (светодиодик не мигал).
  • avatar
  • Gnusmas
  • 13 августа 2018, 21:19
0
Спасибо.
  • avatar
  • Gnusmas
  • 05 августа 2018, 09:06
0
Прошу прощения, в предыдущем посте я соврал. Закомментировал все 15 установок задержек в своей программе, поочередно раскоменчивал, компилил и смотрел результат. И в 1 месте я использовал макрос для передачи переменной. Одна эта строчка и давала +3 кб кода))))))))) Эмпирически подтвердил Ваше «Что делать НЕ надо». Там надо написать «НЕ НАДО !!!!!!!!!!!!!!!!111111111111» )))
А так, при использовании эти макросов для констант, я имел для каждого вызова от: «ни байта кода не добавилось» до "+32 байта" при установке задержки длительностью в 750 мс. + кое-где сжирает по 1-2 байта ОЗУ на вызов. В общем заметил, что чем меньше задержка, тем меньше кода добавляет макрос.
  • avatar
  • Gnusmas
  • 04 августа 2018, 23:18
0
Опечаточка получилась. Указывамый размер конечно относится к НЕХ-файлу, а не исходнику))
  • avatar
  • Gnusmas
  • 04 августа 2018, 19:56