Добрый день!
У меня вопрос в следующем:
Стал разбирать программу (что к чему) и наткнулся на команду "RETURN". Просмотрел список команд для конкретного контроллера PIC12C508 - в этом списке есть только "RETLW"
Отсюда вопрос: допустимо ли использовать команду "RETURN" для 12ти разрядных контроллеров (PIC12C508), или это ошибка?
Вот пример: (Скачал прошивку "HEDGEHOG.hex" вот ссылка -
http://www.musidora.ru/carryhedg.htm)
ЭТО ВЫРЕЗКА ИЗ ПРОГРАММЫ.
music: ; ®¦Ё¤ ЁҐ Ё ®ва Ў®вЄ ¬г§лЄ «мле ¤®«Ґ©
;***********************************************************************
btfsc mode,b_wait ; Їа®ўҐаЄ д« Ј ®¦Ё¤ Ёп ¤®«Ё
goto mus_gate ; д« Ј ўЄ«озҐ=1, ®¦Ё¤ ЁҐ Ё¬Їг«мб
movlw 0ffh ; д« Ј ўлЄ«озҐ,
subwf count_m,w ; ба ўЁвм бзҐвзЁЄ б Є®бв в®©
jnc mus_ret ; ўл室, ҐйҐ Ґ ¤®иҐ« ¤® га®ўп Є®бв вл
incf count_m2,f
movlw const_m ; ба ўЁвм бзҐвзЁЄ б Є®бв в®©
subwf count_m2,w ;
jnc mus_ret ; ўл室, ҐйҐ Ґ ¤®иҐ« ¤® га®ўп Є®бв вл
clrf count_m ; ¤®иҐ«,
clrf count_m2 ; ®Ўг«Ёвм § ¤Ґа¦Єг Ё
bsf mode,b_wait ; гбв ®ўЁвм д« Ј (ЎЁв=1) ®¦Ё¤ Ёп ¤®«Ё
mus_ret:
return
Заранее спасибо за Ваш ответ...
Pic12c508 использование команды RETURN ("Световой еж")
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Pic12c508 использование команды RETURN ("Световой еж")
В принципе, системы прерываний у этих контроллеров нет и команды return тоже нет, однако как видно из описания прога писана на макроассемблере ("Assembler: mpasm 1.40"). Вполне может быть, что команду return он обрабатывает как некий макрос в зависимости от выбранного типа контроллера ("LIST p=12C508 ;") и сам заменяет на соответствующую (и главное существующую для данного контроллера) машинную команду. Если компилятор не ругается, то скорее всего так оно и есть. Можно потом скомпиленную прогу открыть в том же ICProg и посмотреть что он там реально в этом месте накомпилил.допустимо ли использовать команду "RETURN" для 12ти разрядных контроллеров (PIC12C508), или это ошибка?
В любом случае, чтобы не допускать неразберихи и произвола компилятора, а также обеспечить совместимость с другими средами программирования, лучше макросами не пользоваться, а писать прогу командами, которые описаны в даташите.
С уважением, администрация сайта.