ПРОШЛОГОДНИЙ СНЕГ. Лежал у меня давненько вариант реализации SiProg в стиле, ранее примененном в JDPR... Как-то не особо значимая вариация (плановая замена LPT на СОМ) ...
А тут понесло мня на сайт https://matrex-notes.blogspot.com.by/20 ... tmega.html в части обновить ту ШЕЛЛ... Ну и заодно протестить работу моего SiProg. Сразу отмечу, что работает программатор только с СОМ портами интегрированными в материнку и/или в портовую карту PCI. На USB-COM КОШМАР черепахович - совершенно не рекомендую такой вариант СОМа использовать. Перед употреблением кнопой "параметры" вызываем окошко с параметрами http://img.radiokot.ru/files/20529/1i5fqdtk3k.JPG , тыць в ПОРТ и в открывшемся окошке http://img.radiokot.ru/files/20529/1i5fqo89zq.JPG ставим крестик и указываем номер порта согласно реально подключенному и его описанию в диспетчере устройств (у меня СОМ3). Затем кнопой ОК закрываем вкладку - прожка-оболочка готова к работе. Прожку-оболочку скачать можно тут: https://matrex-notes.blogspot.com.by/20 ... tmega.html для чего в открывшемся окне тыць строчку "Скачать программу AVRDUDESHELL" Весьма впечатляет как список МК, так и работа оболочки.
Планировал некоторый материал нашкрябать по применению ардуинок... Да пока некоторые детали еще в живом виде не готовы.. Тут по ходу дела попалась тема viewtopic.php?f=58&t=152968 Честно говоря я ПИКи для примитива редко использую - ибо и дороговаты и лучше их приберечь под низкопотребляющие устройства. Однако... пообещал нацарапать подходящий проектик с объяснениями/комментарием да "шаблон-заготовку" положил там... А раз обещался - надо доделать хотя бы сканер индикаторов на основе BAM. Вот такая "ШКЕЛЕТИНА" получилась:
три светика отрабатывают независимые задания данных яркости по правилам BAM. Данные действительны для 255 уровней. Схемка под прожку также в проекте. Проект настроен в режиме контрольного теста с применением симулятроа и логического анализатора mplabIDE 8.92. Как добавить кнопу/световые эфекты - то на следующее задание. Посмотрямс на реакцию топикстартера viewtopic.php?f=58&t=152968 (Evgeniy630304) - будет интерес продолжу, а нет - засолю на будущее в архиве.
А я и не претендуют на "абсолютную чистоту" стиля - это слэнговый вариант наиболее приближенный к желаемому. Зато одинаково работоспособный во всех трёх применяемых компиляторах. Как и раздел по папкам внутри проекта. Ежли где попадется "полноценный" вариант так же легко работающий с любым компилятором - проведу соответствующие изменения/дополнения. В любом случае гораздо лучше "линейного" примитивна. (зарекался со смартфона не писать - эта редиска свои "ассоциации" подставить наровит! ) Да и за основу у меня взят материал не с http://www.microchip.su а рекомендации от http://pic24.ru/doku.php/osa/articles/mpasm_formatting правда только за основу "к чему следует стремится", ибо одни и те же приемы по разному трактуются другими применяемыми для mcs51 и ABR компиляторами. У компилятора ассемблера для stm8 вообще специфика ближе к I8086.
А я и не "чистоте стиля" , хрень какая-то, я о хренпоймешь и нихренаничитаемом проекте. Если цель была -запутать и себя и остальных, то она успешно достигнута. Сплошная вермишель и абсолютное незнание основ компиляции...
Почему "хрень"? У ПИКов два варианта исполнения проекта режим абсолютной адресации и режим относительной адресации. Оба варианта весьма значительно отличаются (у АВР и mcs51 таких резких отличий нет). Данный "шкелет" ( да и практически все последние мои проекты для ПИКовых) сделан именно для режима относительной адресации. От "линейной классики" весьма отличается как по разметке (дефайну) РОН, так и по адресации ПЗУ. А вот в "популяризированной" любительской практике наиболее часто встречается именно "линейный стиль с абсолютной адресацией". Компилятору вобщем без разницы - какой из вариантов применен, лишь бы не было "смеси" из двух стилей. Мне же удобнее работать с относительным режимом - более совместимым по отношении к MCS51 и AVR.
Ну нет же, ну изучите для чего и как создается мультифайловый проект, как подключаются исходники/библиотеки. Как определяются переменные и секции. Страшно смотреть на вашу лапшу. Ваше творение подобно опусам Корабельникова-пастера. Такой же абсолютно нечитаемый код. Откройте мануал на Mpasm, он находится в папках самого компиля, не ленитесь , читайте. Там же есть пример.
Кому как удобнее. Я ж и говорю "вариант слэнга". Возможно и до "чистого варианта" когда-нибудь доберусь. На сегодня мне удобнее видеть все дефайны в едином файле расписанные за своими подпрограммами по копиям из заголовков тех подпрограмм (по стандартным решениям они размещаются вместе с основным текстом). Да и разница в суффиксах имен файлов скорее для совместимости. Компиляторы могут не иметь линкера в своем составе. А простые *.txt ВСЕГДА одинаково подключаются, независимо от типа и разновидности компилятора. (Знакомые КОТЯТКИ помоложе уже и до таких проектов добрались где "чистыйАсм" применяется.) Помимо прочего "шкелет" теста - не конечный вариант, а всего-то ШКЕЛЕТ для проверки характеристик программы. Без распределения по конечным файлам. Притом, что в проекте явно обозначены общий файл дефайнов, файл макросов, файл обработчика прерываний, файл инициализации аппаратных ресурсов, файл инициализации программных модулей, библиотека прикладных программных фрагментов и файл еепром. Так что разобраться достаточно просто. Общая карта взаиморазмещения файлов и их содержимого находится в 628_lds.asm Файлы обязательного комплекта компилятора (скопировано из соответствующих папок дистрибутива компилятора) размещены в папке baseinc. Файл сводной карты дефайнов librus\def_lds.txt На данный момент весь обработчик БАМ находится в файле обработки прерываний (librus\irq_lds.txt) - собственно это и есть программа работающая на основе прерываний. Инициализация аппаратной конфигурации таймера и прерываний обеспечения размещена в файле аппаратной инициализации (librus\hd_lds.txt). Пердварительная инициализация программного ядра БАМ для текущего теста в файле librus\sfi_lds.txt
Я постараюсь после праздников найти уроки на вменяемый асм. Постараюсь сделать подбор документации и ссылок. Не поленитесь прочитать/изучить. Вы находитесь на самом низком уровне развития, и уже умудрились свернутт в тупик...
Тупик не тупик, но вполне НА ТЕКУЩЕМ ЭТАПЕ работоспособный. Речь ведь не о конкретном компиляторе для микорчипа, а о возможности совмещения проектов для различных компиляторов. Ежли удастся накопать вменяемо читабельный материал по masm51 тоже не помешает... Насчет "уровня" - пока я примеров в Вашем исполнении не видел. А ссылок на интернет ресурсы (и антикварных первоисточников) у меня достаточно много. Нужного материала в них к сожалению ВЕСЬМА МАЛО.
BOB51 вы одно время зажигалкой занимались, там если не ошибаюсь генерация срывалась, победили проблему? Собираю частотник на ПЛИСке, понятно что макетка, вроде и развязка по оптике, на кнопках иногда ложные срабатывания происходят
Там не генерация срывалась, а проблемы с текущими данными в РОН имели место. Достоверность длительного хранения информации при сработке сторожевика по напряжению (схемы BOD) и вообще "защита от мусора в ОЗУ" как результата непредсказуемого спектра импульсных помех... И схемотехника там и программные приемы... (не держать константы/данные в ОЗУ относительно длительное время) плюс очень внимательная переинициализация при сбое по помехе.
Схаматехника - там всё на общей шине у вас было или разное питание. Феррит на проволочке помогает в этом вопросе с подавлением помех? Про приёмы в работе логики тоже мысли есть, попробую.
Я просто выделывался - пускал искру с газовой зажигалки в каждую возможную шинку,,, Обязательно в Шинку + питания и в шинку "корпус" … Также баловался искрой в рабочую лапку МК ( полное хамство по отношению к МК)... Однако... Работает, но с жутейшими самоограничениями. Как рекомендация - включить ВСЕ "сторожа" ( и по напряжению ипо собою программы) и как можно жестче проработать перезапуска после сбоя. В самой программе избегать данных хранимых в ОЗУ более одного командного цикла (предпочтение данным в составе команды). Ну и схемотехники само собой (разводка монтажа). При всем прочем,.. Режим с рабочим искровым разрядом в шины питания рекомендуется всячески избегать... Частотник по уровню помех - игрушка пушистая по сравнению с режимом рабочего искрового разряда в шины питания МК. Скорее всего нужно обратить внимание на схемотехнику - пути сигнальных токов как по активным шинам, так и по линиям возврата... Лишние "петли" в любом случае нежелательны. Да и источник питания должен парировать импульсные выбросы по входным цепям... И ешшо... Работа велась с батарейным вариантом схем. Конструкции с питанием от сети более устойчивы к разряду в "общий". Ежли прямоугольник с большим размахом (ШИМ 220 для движка) желательно уделить внимание соединительной проводке...
Последний раз редактировалось BOB51 Ср мар 07, 2018 08:29:30, всего редактировалось 1 раз.
Ну у меня искров нет , трёхфазный двигатель, синусоида рисуется шимом. Что-то да пролетает. С макеток перееду на готовую конструкцию, там постараюсь всё предусмотреть. Внутри камня там всё железобетонно. Таблица забита намертво, ОЗУ не имеется.
Прийдется временно "посидеть на обедненном резерве"... Сдох системник, а на подсобном антиквариате весьма неуютно и "зажато"... Пока проекты все замораживаются.
С каждым новым компом (более современной материнкой) все больше проблем с внешним железом... Все-таки наиболее подходящим решением на среднюю перспективу будут иметь блоки - расширители на основе КОТУИНКО и/или АРДУИНО. Базовый интерфейс RS232 с использованием только линий Rx/Tx. Наибольший "затык" в вопросе создания оболочек-трансляторов в ПК.
BOB51 Прошу помощи котёнку изучающему азы программирования! Изучал как работает сдвиговый регистор 74нс595 оказалось не так сложно. Тестировал его на Attiny13a и решил попробывать забацать что то вроде часов на Ассемблере. Ну думаю ног теперь хватает сейчас забацаю!! И через какое то время преземлился на задницу! Чтоб передать данные на 595 нужно передовать побитно и впихнуть регистор с данными в порт РВ целиком не получается так как на этом же порту ( так как он там один) висят ноги управляющие 595. Начал запихивать побитно используя команды работы с портом и быстро понял что в атиньки 13 мне места не хватит Получилась 1 минута индикации у меня заняла 82 процента памяти! Как не мозговал так и не додумался как можно сделать часы на Attiny13a и используя 74нс595. Подскажите , поделитесь опытом.В протеусе схема у меня работать отказалась в железе работает. Секунды тикают до 1 минуты и всё по кругу. Свои каракули прикладываю ( правда без коментариев так как там и коментировать особо нечего) и файл протеуса ,
ГММ... У тиньки в свободном доступе 5 выводов. Для 595й при минимальном доступе надо три линии CLC, DATA и WR_CT (линии сброса и разрешения выхода можно подключить схемотехнически в фиксированное состояние) с обязательным начальным циклом программной очистки содержимого. В итоге остается свободных аж два вывода... Для полноценного управления часами маловато. А для простейшей тикалки вполне может и хватить (типа секундомера старт/стоп, сброс). Касательно объёма памяти программ - там 512 команд... Должно для секундомера хватить. Насчет проектов/графики .... Протеуса у меня нету - как уже выше говорилось графику (схемы, диаграммы) для всеобщей доступности нужно в *.jpeg или *.gif или *.pdf вариантах выкладывать. Исходник ... для начинающего сойдет - подправлю чуток попозже.
Спасибо! Очень интересно увидеть до какого верхнего предела по разрядам можно сделать секундомер. И как это на Ассемблере будет выглядеть . В интернете очень мало проектов на Ассемблере тяжко учить без наглядного примера. Решил освою сколько смогу максимально Ассемблер и буду переползать на Си. Примеров в разы больше для учёбы. Очень буду ждать Ваш вариант тикалки. Второй день думаю как можно оптимизировать код и не хрена в голову не лезит. Ведь как не крути порт то один и грузить в него РОН целиком не получиться так как не будет нормально работать управление 74НС595. Нашёл касяк почему протеус у меня не работал . В железе использовал два отдельных индикатора а в протеусе выбрал спаренный. Вот схема
_________________ Лучше семь раз покрыться потом , чем один раз инеем!
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения