Вопросы начинающих PIC ASM
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2349
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Вопросы начинающих PIC ASM
Кто такие?yor писал(а):Некоторые авторы
ICQ нет, и, в ближайшее время, не будет.
Re: Вопросы начинающих PIC ASM
Потому что нулевой результат логический или арифметической операции.
Для связи email: risctronix собака gmail.com
Re: Вопросы начинающих PIC ASM
Где там такие операции, в примере?
Re: Вопросы начинающих PIC ASM
В переменной FSR значения = 0. И при копирование этого значения в аккумулятор, флаг Z устанавливается в 1.
Для связи email: risctronix собака gmail.com
Re: Вопросы начинающих PIC ASM
Заблуждаетесь. FSR - это регистр, а не переменная, и запись "movf FSR,0" вовсе не означает, что в него грузится 0, почитайте эту вырезку внимательнее, сначала. Ошибка в даташите, получается, ну или неточность как минимум.
- КРАМ
- Друг Кота
- Сообщения: 25155
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
Подразумевается, что в регистре был ноль. Не велика неточность.
Re: Вопросы начинающих PIC ASM
Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника
Попробуйте в программе так что-нибудь подразумевать 
Re: Вопросы начинающих PIC ASM
На счет регистра FSR я ошибся терминологически. Но в остальном, сказано верно. 
Для связи email: risctronix собака gmail.com
Re: Вопросы начинающих PIC ASM
У микрочипа описание команд введено в даташит (поскольку у каждого отдельно взятого подвида имеются некоторые отличия).
Посему или руководствуемся полной документацией, включая последующие еррата-шит ()где указываются обнаруженные опечатки/изменения) или делаем анализ даташитов иных "родственных" кристаллов.
При том, что пользоваться предпочтительно наиболее свежим изданием.
Как пример "ошибок" можно привести документацию на PIC16F87A
DS39582C - основная с "потерянной страничкой"
и соответствующая еррата, ту страничку дополняющая
DS80276A Там вообще movf "потерялась" в первом издании.
И практически нигде подобного Вашему, yor скрину я не наблюдаю.

Посему или руководствуемся полной документацией, включая последующие еррата-шит ()где указываются обнаруженные опечатки/изменения) или делаем анализ даташитов иных "родственных" кристаллов.
При том, что пользоваться предпочтительно наиболее свежим изданием.
Как пример "ошибок" можно привести документацию на PIC16F87A
DS39582C - основная с "потерянной страничкой"
и соответствующая еррата, ту страничку дополняющая
DS80276A Там вообще movf "потерялась" в первом издании.
И практически нигде подобного Вашему, yor скрину я не наблюдаю.
- КРАМ
- Друг Кота
- Сообщения: 25155
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
[uquote="yor",url="/forum/viewtopic.php?p=3570435#p3570435"]Очень даже велика, сводит на нет все преимущества такой точной науки, как цифровая техника[/uquote]
Не юродствуйте. Даташиты пишут живые люди. И читают, кстати, тоже. Минимально грамотному человеку понятно что такое флаги состояний. В большинстве даташитов на 8 битное семейство нет примера на эту команду. Что кагбэ намекаэ на очевидность.
ЗЫ. Нет такой науки - "цифровая техника". Есличо...
Не юродствуйте. Даташиты пишут живые люди. И читают, кстати, тоже. Минимально грамотному человеку понятно что такое флаги состояний. В большинстве даташитов на 8 битное семейство нет примера на эту команду. Что кагбэ намекаэ на очевидность.
ЗЫ. Нет такой науки - "цифровая техника". Есличо...
Re: Вопросы начинающих PIC ASM
Да ладно, это как пример. А как эти ерраты искать? По запросам в широком поиске не находится.
- КРАМ
- Друг Кота
- Сообщения: 25155
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
Эрраты искать там же, где и даташиты. На сайте Микрочипа.
Сначала открываете страницу используемого МК и в разделе документация находите не только даташит и эррату, но и аппноты, брифы и референсные мануалы на эту модель, а так же примеры кода.
Сначала открываете страницу используемого МК и в разделе документация находите не только даташит и эррату, но и аппноты, брифы и референсные мануалы на эту модель, а так же примеры кода.
Re: Вопросы начинающих PIC ASM
Спасибо.
Re: Вопросы начинающих PIC ASM
Подскажите, пож-ста, по поводу стека. У 12F675 из даташита следует, что он не боится переполнения, хоть тысячу раз его переполняй, если с умом, аппаратно это не определить, процессор не остановится. Меня такая логика устраивает, из подпрограммы по CALL по неудаче много выходов по GOTO, и при удаче один по RETURN. То есть стек заполнен одним и тем же адресом возврата:
Выход по GOTO может быть достаточно много раз, значительно больше 8 (обработка медленно меняющегося напряжения).
Симулятор при переполнении стопорится, но это можно обойти. А в реальной работе проблем же быть не должно?
Код: Выделить всё
Init:
--
Start: call Delay
--
call TrueFalse
--
TrueFalse:
--
goto Start
--
goto Start
--
return
Delay:
--
returnСимулятор при переполнении стопорится, но это можно обойти. А в реальной работе проблем же быть не должно?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы начинающих PIC ASM
Странный вопрос.yor писал(а):А в реальной работе проблем же быть не должно?
Как это может не быть проблем из-за переполнения стека ?
То, что проц не сбросится и никак не отреагирует - ничего не значит. В стеке актуальные данные потеряются, и в итоге будет крах программы из-за возврата "не туда".
Re: Вопросы начинающих PIC ASM
Ничего странного, если внимательно прочитать мой опус
Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае. И даже другая подпрограмма удачно отработает, так как из неё нет нелегальных выходов. Вроде так 
- valentinovich
- Держит паяльник хвостом
- Сообщения: 999
- Зарегистрирован: Ср окт 04, 2017 20:47:40
Re: Вопросы начинающих PIC ASM
...Стек будет всегда полон нужным мне адресом, на который выход произойдёт только в нужном случае...
Re: Вопросы начинающих PIC ASM
Вы бредите, и не хотите подумать. Может слышали звон? Абстрактные поношения с негодованием отвергаем, требуем обоснованных возражений 
- КРАМ
- Друг Кота
- Сообщения: 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]
В представленном коде переполняющий адрес один и тот же, кроме единственного НЕПЕРЕПОЛНЯЮЩЕГО вызова задержки. Поэтому работать таки будет.
Помимо формального достижения цели следует писать программу так, чтобы она оставалась открытой для последующих возможных модификаций, а равно для простого понимания ее работы через некоторый промежуток времени.
Такшта по факту Вы предлагаете совершенно безобразное решение.
Для искомого Вами двойного выхода из функции есть команда retlw <const>, с помощью которой, НЕ РАЗРУШАЯ СТЕК, можно спокойно ветвить исполнение ПОСЛЕ ШТАТНОГО ВЫХОДА из функции.
Учите матчасть, милейший, а не фонтанируйте глупостями.
Добавлено after 5 minutes 22 seconds:
[uquote="valentinovich",url="/forum/viewtopic.php?p=3581282#p3581282"]чтоб такое изречь[/uquote]
В представленном коде переполняющий адрес один и тот же, кроме единственного НЕПЕРЕПОЛНЯЮЩЕГО вызова задержки. Поэтому работать таки будет.