Вопросы начинающих PIC ASM

Поклонники продукции Microchip Technology Inc тусуются тут.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Вот такой ответ в описании команд. С какого, скажите пож-ста, Z возбудился, ведь не сказано, что FSR=0?
Изображение
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2349
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Вопросы начинающих PIC ASM

Сообщение Dmitry Dubrovenko »

yor писал(а):Некоторые авторы
Кто такие? :roll:
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
Core-X
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Re: Вопросы начинающих PIC ASM

Сообщение Core-X »

Потому что нулевой результат логический или арифметической операции.
Для связи email: risctronix собака gmail.com
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Где там такие операции, в примере?
Аватара пользователя
Core-X
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Re: Вопросы начинающих PIC ASM

Сообщение Core-X »

В переменной FSR значения = 0. И при копирование этого значения в аккумулятор, флаг Z устанавливается в 1.
Для связи email: risctronix собака gmail.com
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Заблуждаетесь. FSR - это регистр, а не переменная, и запись "movf FSR,0" вовсе не означает, что в него грузится 0, почитайте эту вырезку внимательнее, сначала. Ошибка в даташите, получается, ну или неточность как минимум.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25155
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

Подразумевается, что в регистре был ноль. Не велика неточность.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника :-) Попробуйте в программе так что-нибудь подразумевать :-)
Аватара пользователя
Core-X
Встал на лапы
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Re: Вопросы начинающих PIC ASM

Сообщение Core-X »

На счет регистра FSR я ошибся терминологически. Но в остальном, сказано верно. :)
Для связи email: risctronix собака gmail.com
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15551
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

У микрочипа описание команд введено в даташит (поскольку у каждого отдельно взятого подвида имеются некоторые отличия).
Посему или руководствуемся полной документацией, включая последующие еррата-шит ()где указываются обнаруженные опечатки/изменения) или делаем анализ даташитов иных "родственных" кристаллов.
При том, что пользоваться предпочтительно наиболее свежим изданием.
8)
Как пример "ошибок" можно привести документацию на PIC16F87A
DS39582C - основная с "потерянной страничкой"
и соответствующая еррата, ту страничку дополняющая
DS80276A
80276A.pdf
(164.48 КБ) 267 скачиваний
Там вообще movf "потерялась" в первом издании.
:wink:
И практически нигде подобного Вашему, yor скрину я не наблюдаю.
:beer:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25155
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="yor",url="/forum/viewtopic.php?p=3570435#p3570435"]Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника[/uquote]
Не юродствуйте. Даташиты пишут живые люди. И читают, кстати, тоже. Минимально грамотному человеку понятно что такое флаги состояний. В большинстве даташитов на 8 битное семейство нет примера на эту команду. Что кагбэ намекаэ на очевидность.
ЗЫ. Нет такой науки - "цифровая техника". Есличо...
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Да ладно, это как пример. А как эти ерраты искать? По запросам в широком поиске не находится.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25155
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

Эрраты искать там же, где и даташиты. На сайте Микрочипа.
Сначала открываете страницу используемого МК и в разделе документация находите не только даташит и эррату, но и аппноты, брифы и референсные мануалы на эту модель, а так же примеры кода.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Спасибо.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Подскажите, пож-ста, по поводу стека. У 12F675 из даташита следует, что он не боится переполнения, хоть тысячу раз его переполняй, если с умом, аппаратно это не определить, процессор не остановится. Меня такая логика устраивает, из подпрограммы по CALL по неудаче много выходов по GOTO, и при удаче один по RETURN. То есть стек заполнен одним и тем же адресом возврата:

Код: Выделить всё

Init:
--
Start: call Delay
--
call TrueFalse
--
TrueFalse:
--
goto Start
--
goto Start
--
return
Delay:
--
return
Выход по GOTO может быть достаточно много раз, значительно больше 8 (обработка медленно меняющегося напряжения).
Симулятор при переполнении стопорится, но это можно обойти. А в реальной работе проблем же быть не должно?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы начинающих PIC ASM

Сообщение Аlex »

yor писал(а):А в реальной работе проблем же быть не должно?
Странный вопрос.
Как это может не быть проблем из-за переполнения стека ? :)
То, что проц не сбросится и никак не отреагирует - ничего не значит. В стеке актуальные данные потеряются, и в итоге будет крах программы из-за возврата "не туда".
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Ничего странного, если внимательно прочитать мой опус :-) Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае. И даже другая подпрограмма удачно отработает, так как из неё нет нелегальных выходов. Вроде так :-)
Аватара пользователя
valentinovich
Держит паяльник хвостом
Сообщения: 999
Зарегистрирован: Ср окт 04, 2017 20:47:40

Re: Вопросы начинающих PIC ASM

Сообщение valentinovich »

...Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае...
:shock: МужУки, я брежу или вы это тоже видите. И чего это надо предварительно курить, чтоб такое изречь? :dont_know:
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Вы бредите, и не хотите подумать. Может слышали звон? Абстрактные поношения с негодованием отвергаем, требуем обоснованных возражений :-)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25155
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

В данном случае работать будет, но только вопрос - зачем так делать?
Помимо формального достижения цели следует писать программу так, чтобы она оставалась открытой для последующих возможных модификаций, а равно для простого понимания ее работы через некоторый промежуток времени.
Такшта по факту Вы предлагаете совершенно безобразное решение.
Для искомого Вами двойного выхода из функции есть команда retlw <const>, с помощью которой, НЕ РАЗРУШАЯ СТЕК, можно спокойно ветвить исполнение ПОСЛЕ ШТАТНОГО ВЫХОДА из функции.
Учите матчасть, милейший, а не фонтанируйте глупостями.

Добавлено after 5 minutes 22 seconds:
[uquote="valentinovich",url="/forum/viewtopic.php?p=3581282#p3581282"]чтоб такое изречь[/uquote]
В представленном коде переполняющий адрес один и тот же, кроме единственного НЕПЕРЕПОЛНЯЮЩЕГО вызова задержки. Поэтому работать таки будет.
Ответить

Вернуться в «PIC»