Свежие обсуждения
Микроконтроллеры

Реализация алгоритма им. тов. Брезенхема - не получается

1 2 3

Wladimir_TS: не могут корректно даже ассемблировать текст из 3 команд. Или приемлит только (HEX/BIN но некорректно даже дизассемблировать не может инструкция MOV A, 1 ...... точнее дизассемблирует, но не исполняет.... 1 в аккумулятор загрузить.... блин.

Что-то вы НЕ так делаете. BIN/HEX файлы, это результат ассемблера для записи кода в память контроллера.И ничего более... А для СИМВОЛЬНОЙ отладки требуется сделать еще несколько файлов (тут они разные в разных симуляторах), т.е. после ассемблирования их нужно создать, что делается кнопочками во многих симуляторах, например в Keil. Есть симуляторы работающие только по HEX файлу, но тогда будут чисто цифры с мнемоникой команд, без ваших мнемонических обозначений переменных. Как делать, выбирать вам.

Wladimir_TS: все-ж внутрисхемная отладка очень удобна.

Сергей К: Но ничего лучше аппаратной внутрисхемной отладки нет

Именно так. Во ВСЕХ контроллерах SILAB уже внутри кристалла есть аппаратные средства внутрисхемной отладки. Софт для этого на сайте бесплатно.

 

Сергей К: Сергей К ◊
сегодня, 12:52

А популярный Протеус?

Мне ну нужна симуляция внешних выводов - мне нужны внутренние вычисления, прогнать и понять принцип рассчета. Ну ибудут у меня на выходе пачки импульсов (причем я знаю какие) - а КАК они получаются я не узнаю.

Vlad_Petr: Что-то вы НЕ так делаете. BIN/HEX файлы, это результат ассемблера для записи кода в память контроллера.И ничего более... А для СИМВОЛЬНОЙ отладки требуется сделать еще несколько файлов (тут они разные в разных симуляторах), т.е. после ассемблирования их нужно создать, что делается кнопочками во многих симуляторах, например в Keil. Есть симуляторы работающие только по HEX файлу, но тогда будут чисто цифры с мнемоникой команд, без ваших мнемонических обозначений переменных.

Эти симуляторы жрут готовый *.HEX и типа все в нем делают, да только криво до ужаса.

Vlad_Petr: Во ВСЕХ контроллерах SILAB уже внутри кристалла есть аппаратные средства внутрисхемной отладки. Софт для этого на сайте бесплатно.

Это суровые 32 разрядные монстрики в корпусах для пайки под микроскопом (парочку даже прикупил - но для повторения чужой разработки с целью "понять как работае и сделать по своему" - да шьются по обычному UART) ? Ну это сурово слишком - 95% мойх программ в Tiny13 влезает и еще остается место. А крупнее беру, если лень регистры лепить, а выводов не хватает.

 

Wladimir_TS: Это суровые 32 разрядные монстрики в корпусах для пайки под микроскопом

К сожалению, общая тенденция именно такая.. шаг все меньше, размеры все мельче.
Тем не менее с внутрисхемной отладкой все 8р. SILAB. Есть в SOIC и даже одни в DIP

Wladimir_TS: Эти симуляторы жрут готовый *.HEX и типа все в нем делают, да только криво до ужаса.

Возможно, вы что-то не так делаете...Никогда никакой кривизны не замечал, раньше часто пользовался простыми симуляторами, отлаживая похожие задачки многобайтной арифметики. В Гугле "симуляторы MCS-51"
дает 13 тыс. ссылок.

 

Wladimir_TS: Мне ну нужна симуляция внешних выводов - мне нужны внутренние вычисления, прогнать и понять принцип рассчет

Это в Протеусе (первый попавшийся скрин в сети):

 

http://www.glotov.pp.ru/rt/xsoft.shtml там старенький FD51 лежит. Запускается в DOS окне виндовоза.Кушает только один файл с ассемблера

Сергей К: Это в Протеусе (первый попавшийся скрин в сети):
На скрине симуляция с переменными Пользователя (и даже комментариями) Очевидно, что никакой софт не способен это возродить только из HEX файла после работы ассемблера. Вся отладка идет в связке исходного текста, рожденного HEX файла и еще некоторых порожденных Протеусом файлов.

 

Vlad_Petr: Возможно, вы что-то не так делаете...Никогда никакой кривизны не замечал, раньше часто пользовался простыми симуляторами, отлаживая похожие задачки многобайтной арифметики. В Гугле "симуляторы MCS-51"
дает 13 тыс. ссылок.

Ну вот первые 6 оказались фигней. Какие-то студенческие проекты у которых только оболочка красивая, остальное кривизна на глюке. Или с отладкой только на некоей демоплате с которой тщетно пытаюбтся сконнектиться, или в аккумулятор не могут констату грузить.

В протеусе не нашел как прицепить что-б текст программы показывали и состояние регистров. Версия 7.1

Скачал с фитоновского сайта какого-то 10 мБ монстрика.

 

Vlad_Petr: там старенький FD51 лежит.
Возьмите и не парьтесь.

 

Vlad_Petr: Вся отладка идет в связке исходного текста, рожденного HEX файла и еще некоторых порожденных Протеусом файлов

В случае PICов используется файл COF, который компилируется параллельно с HEX и содержит в себе всю необходимую информацию для отладки.

Wladimir_TS: В протеусе не нашел как прицепить что-б текст программы показывали и состояние регистров

Запускаете на симуляцию и нажимаете "пауза". Далее в меню Debug в самом низу ищите название Вашего МК.

 

Помог FD51 - разобрался я ! Вот рабочий код :

MOV R16, POWER
ADD DELTA, R16
MOV R17, DELTA
SBRC R17, 7
RJMP CUHX1
SBI PORTD, 6 ;Вывод управления симмистором
CLC
SBCI DELTA, 100
RJMP CUHX2
CUHX1:
CBI PORTD, 6
CUHX2:
DEC PHASE
BRNE CUHX3
LDI PHASE, 100
LDI DELTA, 206
CUHX3:

 

Сегодня простые 8р. контроллеры относительно дешевы. Реализация схемы даже на трех-четырех корпусах простой логики уже оказывается дороже контроллерной, если учитывать необходимый конструктив. Эта тенденция диктует использование контроллеров для отдельных простых задачек не требующих высокого схемного быстродействия. Часто, такая задачка настолько простая, что в ней очевидно использование только небольшой части имеющейся памяти программ контроллера. В таких случаях удобнее и быстрее, во всех смыслах, импользовать табличные преобразования входных данных в выходные.