Здравствуйте! Подскажите пож-ста. PIC 12F675 Не работает такой код
Код:
btfsc W,0 ; W 0bit -> Out0 bsf Outstat,Out0
В АКБ 0x1, а он просто идёт дальше, как-будто W(0)=0. В железе не пошло сразу, мучаю в симуляторе пока. Есть сомнения, что в этой команде можно использовать АКБ, хотя даташиту вроде не противоречит, но в инете попадается, что нельзя...
Да уж, что это за аккумулятор такой недоделанный... Компилятор gpasm не выдаёт в этом случае ни ошибки ни даже предупреждения, а другие более возлюбленные микрочипом? Даташит: BTFSC bit Test, Skip if Clear Syntax: [label] BTFSC f,b Operands: 0<=f<=127 0<=b<=7 Вроде формально укладывается, предупреждений/запретов на использование W нет.
Откройте таблицу команд в родном pdf-е и посмотрите какие команды на какие флаги влияют. Лень проверять на железе, но уверен что decf W,W он не выполнит. ----- Более менее можно верить MPLAB SIM, но иногда и там встречаются "недочёты" в Debugger-е.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Не могу сообразить, причём тут флаги. Мне тоже кажется, что не выполнит. DECF Decrement f Syntax: [label] DECF f,d Operands: 0<=f<=127 d=[0,1] Operation: (f) - 1 -> (destination) Status Affected: Z
Может и до меня кто заметил, но думаю, если в мнемонике команды нет буквы W, то использовать его нельзя
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Z - флаг ZERO ("0"). ------- В 12-ой серии decf W,x не выполняется.
Как из первого следует второе?
Аlex писал(а):
Так оно и есть.
Странно, что не находится прямого вразумления от микрочипа. Даже PICmicro Mid-Range Reference Manual-33023a просмотрел (не очень конечно досконально) - и тишина...
Аlex писал(а):
побитовое "И" его с константой (ANDLW) и проверить флаг Z.
Это уже не одна команда, но это мелочи, и вкупе с другими неподдерживающими АКБ командами не имеет смысла, проще действительно сторонний регистр задействовать.
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Пн янв 11, 2016 19:42:04
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:4 Медали: 1
yor писал(а):
Странно, что не находится прямого вразумления от микрочипа.
Не понятно, какое вразумление Вам нужно ? Команда btfsc - проверка бита в регистре. Именно в регистре ! Все команды имеют описание. Если в описании оперирует аккумулятор (кстати, это далеко не АКБ) - значит операция производится именно с ним. Аккумулятор не имеет адресации, по этому обратиться к нему напрямую (даже косвенно), как к регистру, нельзя. И никакой он не недоделанный, просто такая система команд слабоватая.
А в каком состоянии после включения, POR и прочих сбросов находятся общие регистры, которые ОЗУ? Некоторые в любом, некоторые в определённом (а иначе невозможно было бы начать работу), а про общие не пишут. Понятно, что для надёжности/определённости можно сбрасывать, но всё-таки, если кто знает? Да и если каждый сбрасывать, много места зря пропадает.
Ну в смысле инициализировать, я имел ввиду. А вот возвращаясь к напечатанному:
Albert_V писал(а):
Команда btfsc W,0 в PIC12F675 не пройдёт.
А в каких-нибудь PIC-ах вообще пройдёт? Учитывая
yor писал(а):
если в мнемонике команды нет буквы W, то использовать его нельзя
yor писал(а):
Компилятор gpasm не выдаёт в этом случае ни ошибки ни даже предупреждения, а другие более возлюбленные микрочипом?
Это как-то неприлично выглядит со стороны, gpasm ладно понятно, СПО и всё такое, но неужели и mpasm и прочие типа серъёзные компиляторы так же себя ведут в этом случае? Проверьте пож-ста, кому не трудно, а то я сам под линуксом живу.
Заголовок сообщения: Re: Вопросы начинающих PIC ASM
Добавлено: Вт янв 12, 2016 10:53:22
Встал на лапы
Карма: 3
Рейтинг сообщений: 17
Зарегистрирован: Чт ноя 26, 2015 23:22:35 Сообщений: 123 Откуда: не с Уфы
Рейтинг сообщения:0
Цитата:
Команда btfsc W,0 в PIC12F675 не пройдёт.
А в каких-нибудь PIC-ах вообще пройдёт?
Что значит не пройдёт? Мне кажется вы неверно представляете это. На самом деле пройдёт.
Если вы напишите BTFSC W,0 то как и в любом другом случае, если вы не нарушили синтаксис, будет создан соответствующий опкод. А именно : Вместо W подставится ноль, ведь именно так он у вас определён, только это команда работает с адресом регистра, поэтому будет обращение к регистру с адресом 0x00, а это indf. А кто сказал что к нему нельзя обращаться, и к его любому биту?
А хотели ли вы обратиться к indf, когда писали W, это уже другой вопрос.
Это понятно, но как задумано всё-таки не пройдёт. Потому и компилится без ошибок. Не зря существуют (слышал краем уха) всякие лексические-грамматические анализаторы.
yor, если пишите программу на ASM - лучше никому не доверять проверку логики работы программы. Только сами. "Если что" - в MPLAB Sim можете посмотреть "что происходит", но на 100% у меня к нему доверия нет. Синтаксис и орфографию проверит транслятор в любом случае. ---- P.S. Пока изучаете PIC-и - лучше не отключать Warning-и. Пусть, лучше, будет "куча" предупреждений типа "проверьте к какому банку вы обращаетесь" или "по умолчанию результат сохранён в регистре" (это если забыли в команде, к примеру, decf regx указать куда сохранить результат). По крайне мере, будет повод ещё раз перепроверить текст программы.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения