Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы начинающих PIC ASM
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июн 17, 2024 07:26:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 492 ]  1, , , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 17:11:36 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Здравствуйте!
Подскажите пож-ста. PIC 12F675 Не работает такой код
Код:
btfsc W,0 ; W 0bit -> Out0
bsf Outstat,Out0

В АКБ 0x1, а он просто идёт дальше, как-будто W(0)=0. В железе не пошло сразу, мучаю в симуляторе пока. Есть сомнения, что в этой команде можно использовать АКБ, хотя даташиту вроде не противоречит, но в инете попадается, что нельзя...

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 17:28:18 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Команда btfsc W,0 в PIC12F675 не пройдёт.
Сохраните W в RAM (в некий регистр) и сделайте в нём проверку бита "0".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 17:48:13 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Да уж, что это за аккумулятор такой недоделанный... Компилятор gpasm не выдаёт в этом случае ни ошибки ни даже предупреждения, а другие более возлюбленные микрочипом?
Даташит:
BTFSC bit Test, Skip if Clear
Syntax: [label] BTFSC f,b
Operands: 0<=f<=127 0<=b<=7
Вроде формально укладывается, предупреждений/запретов на использование W нет.

И думаю, по аналогии,
Код:
decf W,W
тоже нельзя?

_________________
gentoo kicad 7


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 18:21:45 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Откройте таблицу команд в родном pdf-е и посмотрите какие команды на какие флаги влияют.
Лень проверять на железе, но уверен что decf W,W он не выполнит.
-----
Более менее можно верить MPLAB SIM, но иногда и там встречаются "недочёты" в Debugger-е.


Вернуться наверх
 
Важные нюансы подбора литиевых ХИТ для разработчиков

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 18:30:42 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Не могу сообразить, причём тут флаги. Мне тоже кажется, что не выполнит.
DECF Decrement f
Syntax: [label] DECF f,d
Operands: 0<=f<=127 d=[0,1]
Operation: (f) - 1 -> (destination)
Status Affected: Z

Может и до меня кто заметил, но думаю, если в мнемонике команды нет буквы W, то использовать его нельзя :))

_________________
gentoo kicad 7


Вернуться наверх
 
Литиевые батарейки и аккумуляторы от мирового лидера EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. EVE является поставщиком аккумуляторных элементов круглого формата для электрических моделей автомобилей. Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 18:48:37 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
yor писал(а):
Не могу сообразить, причём тут флаги....
...Status Affected: Z

Z - флаг ZERO ("0").
-------
В 12-ой серии decf W,x не выполняется.
-------
Замените btfsc W,0 на
Код:
   movwf   TEMPx
   btfsc   TEMPx,0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 19:10:45 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4511
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
yor писал(а):
Может и до меня кто заметил, но думаю, если в мнемонике команды нет буквы W, то использовать его нельзя :))
Так оно и есть.

А проверить нулевой бит в аккумуляторе можно, сделав побитовое "И" его с константой (ANDLW) и проверить флаг Z.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 19:23:33 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Albert_V писал(а):
Z - флаг ZERO ("0").
-------
В 12-ой серии decf W,x не выполняется.

Как из первого следует второе?

Аlex писал(а):
Так оно и есть.

Странно, что не находится прямого вразумления от микрочипа. Даже PICmicro Mid-Range Reference Manual-33023a просмотрел (не очень конечно досконально) - и тишина...

Аlex писал(а):
побитовое "И" его с константой (ANDLW) и проверить флаг Z.

Это уже не одна команда, но это мелочи, и вкупе с другими неподдерживающими АКБ командами не имеет смысла, проще действительно сторонний регистр задействовать.

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 19:29:12 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
yor писал(а):
...Как из первого следует второе?...

Никак.
Я специально проставил "разделитель" между фразами (не три поста же "городить").


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 19:42:04 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4511
Откуда: Планета Земля
Рейтинг сообщения: 4
Медали: 1
Получил миской по аватаре (1)
yor писал(а):
Странно, что не находится прямого вразумления от микрочипа.
Не понятно, какое вразумление Вам нужно ?
Команда btfsc - проверка бита в регистре. Именно в регистре ! Все команды имеют описание. Если в описании оперирует аккумулятор (кстати, это далеко не АКБ) - значит операция производится именно с ним.
Аккумулятор не имеет адресации, по этому обратиться к нему напрямую (даже косвенно), как к регистру, нельзя. И никакой он не недоделанный, просто такая система команд слабоватая.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 19:49:08 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Вот хотя бы такое, спасибо :))

А в каком состоянии после включения, POR и прочих сбросов находятся общие регистры, которые ОЗУ? Некоторые в любом, некоторые в определённом (а иначе невозможно было бы начать работу), а про общие не пишут. Понятно, что для надёжности/определённости можно сбрасывать, но всё-таки, если кто знает? Да и если каждый сбрасывать, много места зря пропадает.

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пн янв 11, 2016 22:48:54 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 17
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 125
Откуда: не с Уфы
Рейтинг сообщения: 0
FF


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 00:22:32 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4511
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не пишут - значит в неопределённом.
А зачем их сбрасывать ? Чем сброс отличается от установки в него, к примеру, 0x55 ? Чем сброс поможет Вам ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 09:16:10 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Ну в смысле инициализировать, я имел ввиду. А вот возвращаясь к напечатанному:
Albert_V писал(а):
Команда btfsc W,0 в PIC12F675 не пройдёт.

А в каких-нибудь PIC-ах вообще пройдёт? Учитывая
yor писал(а):
если в мнемонике команды нет буквы W, то использовать его нельзя


yor писал(а):
Компилятор gpasm не выдаёт в этом случае ни ошибки ни даже предупреждения, а другие более возлюбленные микрочипом?

Это как-то неприлично выглядит со стороны, gpasm ладно понятно, СПО и всё такое, но неужели и mpasm и прочие типа серъёзные компиляторы так же себя ведут в этом случае? Проверьте пож-ста, кому не трудно, а то я сам под линуксом живу.

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 09:32:07 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
yor писал(а):
...А в каких-нибудь PIC-ах вообще пройдёт?...

В PIC24FJ проходит.
В PIC18F26K22 - так же проходит btfss WREG,0 (проверил на реальном "железе").


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 10:53:22 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 17
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 125
Откуда: не с Уфы
Рейтинг сообщения: 0
Цитата:
Команда btfsc W,0 в PIC12F675 не пройдёт.

А в каких-нибудь PIC-ах вообще пройдёт?


Что значит не пройдёт? Мне кажется вы неверно представляете это.
На самом деле пройдёт.

Если вы напишите BTFSC W,0 то как и в любом другом случае, если вы не нарушили синтаксис, будет создан соответствующий опкод.
А именно : Вместо W подставится ноль, ведь именно так он у вас определён, только это команда работает с адресом регистра, поэтому будет обращение к регистру с адресом 0x00, а это indf. А кто сказал что к нему нельзя обращаться, и к его любому биту?

А хотели ли вы обратиться к indf, когда писали W, это уже другой вопрос.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 11:12:45 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Это понятно, но как задумано всё-таки не пройдёт. Потому и компилится без ошибок. Не зря существуют (слышал краем уха) всякие лексические-грамматические анализаторы.

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 11:18:08 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
yor, если пишите программу на ASM - лучше никому не доверять проверку логики работы программы.
Только сами.
"Если что" - в MPLAB Sim можете посмотреть "что происходит", но на 100% у меня к нему доверия нет.
Синтаксис и орфографию проверит транслятор в любом случае.
----
P.S.
Пока изучаете PIC-и - лучше не отключать Warning-и.
Пусть, лучше, будет "куча" предупреждений типа "проверьте к какому банку вы обращаетесь" или "по умолчанию результат сохранён в регистре" (это если забыли в команде, к примеру, decf regx указать куда сохранить результат).
По крайне мере, будет повод ещё раз перепроверить текст программы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 12:12:59 
Сверлит текстолит когтями
Аватар пользователя

Карма: 1
Рейтинг сообщений: 74
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1294
Откуда: Нью-Сибирск
Рейтинг сообщения: 0
Ну как тут не согласиться, согласен конечно со всем:)) Я в gpsim проверяю, случай с "btfsc W" поймал :))

_________________
gentoo kicad 7


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт янв 12, 2016 12:17:22 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
yor писал(а):
...Я в gpsim проверяю...

Лучше, на мой взгляд, пользоваться официальным софтом от производителя контроллеров.
Для PIC-ов - MPLAB (бесплатный).


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 492 ]  1, , , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y