К тематике программирование на forht. Вот еще мои некоторые публикации, где используетcя forth. Forth-ассемблер.
Причина.Резко усилилась нагрузка на спец-микросхемы от "продажников" и "перепродажников": спец-микросхемы меняем на универсальные микроконтроллеры. Т.е. "снижение цены вопроса конечного изделия".
1.
Замена DS2409 на 12F629
Тема опубликована в журнале «Соэл» 2021г N8-c22..26 (рисунки кликабельны,pdf)
http://90.189.213.191:4422/doc_sh/toguc ... 24_zamena/2.
Четырёхканальный ретранслятор 1-Wire
Тема опубликована в журнале «Соэл» 2021г N8-c28..31 (рисунки кликабельны,pdf)
http://90.189.213.191:4422/doc_sh/toguc ... 0_retrans/Размышление по сложности понимания forth-assemlera.
1. На уровне 3-5 листов просто ассемблера как то терпимо. Но 6-10 листов уже появляются =тупые= ошибки повторения названий меток. или просто =смотришь в книгу - видишь фигу= Тут мотивация влияете, если это очень-очень денежный проект, то по простому .. каждую строчку проверяешь и проверяешь. Вообщем очень ..тупая работа...
2. Что дает forth-аssemler ? Он дает СВОБОДУ!. Метки - повторяй сколько хочешь. Конструкция программы создается "сверху-вниз" . Т.е. в принципе нельзя сделать синтаксических или орфографических ошибок. Все ошибки - в "целесоздании". Например, в цикл передачи 8 байт, циклом с косвенной адресацией. А потом смотрю, как совместить и режим с +5 вольт и режим с паразитным питанием? Начинаешь добавлять пред проверки, что бы уточнить выходные параметры. Т.е. убирается =тупизм=. Может конечно "слишком розово", но это так в программах, так и было. Основной цикл сделал за 1-2 часа и все работало. А потом где то неделю добавлял всякие "улучшательства" и "а может так еще проверить". и еще конечно алгоритм пакета. Пришлось перебрать несколько вариантов доступа к 2409, что бы было более менее "совпадимо" с исходным заменяемым элементом. Брал pdf 2409 и по нему делал аналог. Хотя можно было хоть какой свой вариант создать с нуля.
3. В "теле" программы есть исходники-архивы на Протеусе-7. Т.е. проверял модели и самое важное - Протеус-7 дает возможность создать hex-файл и прошить реальный PIC. Очень помогло при формировании hex-кода. В моей версии отказался от циклов =begin=until и =begin=while=repeat. Все циклы в командах аssemlera. А так же от условных переходов if=then Но конструкции создал.
4. Оформление подпрограмм выполнено обычным 2х проходным методом. Обычным словом : name <> < > ; Что это значит? Пп. при компиляции в код указываются с входным параметром 0 а при исполнении с параметром 1.
0 test_out_8n# ( 0 -- указывается что идет компиляция текста пп )
1 test_out_8n# ( 1 -- указывается что используется подпрограмм и соответственно по ее назначению можно что то АКМ задать или в другие регистры )
Классический подход - это структура create does> Есть и минус. Надо соблюдать "вкладываемость" Если пп обращается к другой пп. а та еще к другой, то обязательно последовательность с низу в верх. Однако, Сделал контрольку проверки. Если не "соблюл", то выдается ошибка не правильное офоромление пп с указателем где. Так где 10-15 пп получается, и по "вкладываемости" 2-3 пп в пп.
Всем успехов и здоровья!