Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

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

Чт фев 14, 2019 18:39:03

Вот такой ответ в описании команд. С какого, скажите пож-ста, Z возбудился, ведь не сказано, что FSR=0?
Изображение

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

Чт фев 14, 2019 18:57:44

yor писал(а):Некоторые авторы
Кто такие? :roll:

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

Чт фев 14, 2019 19:00:41

Потому что нулевой результат логический или арифметической операции.

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

Чт фев 14, 2019 19:21:11

Где там такие операции, в примере?

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

Чт фев 14, 2019 19:35:45

В переменной FSR значения = 0. И при копирование этого значения в аккумулятор, флаг Z устанавливается в 1.

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

Чт фев 14, 2019 21:31:40

Заблуждаетесь. FSR - это регистр, а не переменная, и запись "movf FSR,0" вовсе не означает, что в него грузится 0, почитайте эту вырезку внимательнее, сначала. Ошибка в даташите, получается, ну или неточность как минимум.

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

Пт фев 15, 2019 03:14:47

Подразумевается, что в регистре был ноль. Не велика неточность.

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

Пт фев 15, 2019 04:58:39

Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника :-) Попробуйте в программе так что-нибудь подразумевать :-)

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

Пт фев 15, 2019 06:42:58

На счет регистра FSR я ошибся терминологически. Но в остальном, сказано верно. :)

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

Пт фев 15, 2019 10:20:36

У микрочипа описание команд введено в даташит (поскольку у каждого отдельно взятого подвида имеются некоторые отличия).
Посему или руководствуемся полной документацией, включая последующие еррата-шит ()где указываются обнаруженные опечатки/изменения) или делаем анализ даташитов иных "родственных" кристаллов.
При том, что пользоваться предпочтительно наиболее свежим изданием.
8)
Как пример "ошибок" можно привести документацию на PIC16F87A
DS39582C - основная с "потерянной страничкой"
и соответствующая еррата, ту страничку дополняющая
DS80276A
80276A.pdf
(164.48 KiB) Скачиваний: 215

Там вообще movf "потерялась" в первом издании.
:wink:
И практически нигде подобного Вашему, yor скрину я не наблюдаю.
:beer:

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

Пт фев 15, 2019 11:11:38

Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника

Не юродствуйте. Даташиты пишут живые люди. И читают, кстати, тоже. Минимально грамотному человеку понятно что такое флаги состояний. В большинстве даташитов на 8 битное семейство нет примера на эту команду. Что кагбэ намекаэ на очевидность.
ЗЫ. Нет такой науки - "цифровая техника". Есличо...

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

Пт фев 15, 2019 12:27:23

Да ладно, это как пример. А как эти ерраты искать? По запросам в широком поиске не находится.

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

Пт фев 15, 2019 12:42:05

Эрраты искать там же, где и даташиты. На сайте Микрочипа.
Сначала открываете страницу используемого МК и в разделе документация находите не только даташит и эррату, но и аппноты, брифы и референсные мануалы на эту модель, а так же примеры кода.

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

Пт фев 15, 2019 14:09:50

Спасибо.

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

Сб мар 02, 2019 21:01:21

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

Выход по GOTO может быть достаточно много раз, значительно больше 8 (обработка медленно меняющегося напряжения).
Симулятор при переполнении стопорится, но это можно обойти. А в реальной работе проблем же быть не должно?

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

Сб мар 02, 2019 21:06:56

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

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

Сб мар 02, 2019 21:40:54

Ничего странного, если внимательно прочитать мой опус :-) Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае. И даже другая подпрограмма удачно отработает, так как из неё нет нелегальных выходов. Вроде так :-)

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

Сб мар 02, 2019 22:25:15

...Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае...

:shock: МужУки, я брежу или вы это тоже видите. И чего это надо предварительно курить, чтоб такое изречь? :dont_know:

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

Вс мар 03, 2019 04:37:32

Вы бредите, и не хотите подумать. Может слышали звон? Абстрактные поношения с негодованием отвергаем, требуем обоснованных возражений :-)

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

Вс мар 03, 2019 07:40:02

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

Добавлено after 5 minutes 22 seconds:
чтоб такое изречь

В представленном коде переполняющий адрес один и тот же, кроме единственного НЕПЕРЕПОЛНЯЮЩЕГО вызова задержки. Поэтому работать таки будет.
Ответить