Добрый день!
У меня вопрос в следующем:
Стал разбирать программу (что к чему) и наткнулся на команду "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
Заранее спасибо за Ваш ответ...
команда "RETURN" в 12ти разрядном контроллере PIC12C508
- Реклама
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: команда "RETURN" в 12ти разрядном контроллере PIC12C508
Может это недокументированная команда?
Опытным путем. Или расчленять состав команды по битам.
Опытным путем. Или расчленять состав команды по битам.
Docendo discimus
Re: команда "RETURN" в 12ти разрядном контроллере PIC12C508
Чем гадать , давно бы скомпилировали .flash123 писал(а): У меня вопрос в следующем:
На сайте же написано :
При компиляции гавкнуло что псевдо инструкции RETURN замененны на RETLW0.(можно перенести на любой PIC)
Но скомпилировалось без ошибок.
Код: Выделить всё
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 387 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 415 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 421 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 424 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 431 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 445 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 458 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 469 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 531 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 535 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 539 : Substituting RETLW 0 for RETURN pseudo-op
Warning[227] C:\DISTR\RAZRAB\SOURCE\KAZUS\RADIOKOT\YEJ\EG1.ASM 543 : Substituting RETLW 0 for RETURN pseudo-op
Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p12C508A "eg1.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"eg1.cof" /M"eg1.map" /W /x
MPLINK 4.39, Linker
Device Database Version 1.1
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0
Loaded C:\DISTR\RAZRAB\SOURCE\Kazus\RadioKot\Yej\eg1.cof.
----------------------------------------------------------------------
Debug build of project `C:\DISTR\RAZRAB\SOURCE\Kazus\RadioKot\Yej\eg.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39
Preprocessor symbol `__DEBUG' is defined.
Mon Jun 27 19:02:14 2011
----------------------------------------------------------------------
BUILD SUCCEEDED
Re: команда "RETURN" в 12ти разрядном контроллере PIC12C508
Благодаю Вас за ответ.
Я вот и хочу зашить вместо PIC12c508 - PIC12F508, так и не получается - об этой проблеме писал в теме: "PIC12C508 - замена на PIC12F508 (прошивка "Световой еж"). Может Вы можете как то прокоментировать, подсказать.
Вот в чем проблема:
Скачал прошивку "HEDGEHOG.hex" вот ссылка -
http://www.musidora.ru/carryhedg.htm. Она изначально используется для
PIC12C508. Поскольку это одноразовый кристалл, я решил заменить его на
PIC12F508 ("F" - перезаписываемый). Естественно, ничего не получается
прошить. Может кто сталкивался с этим? Помогите пожалуйста. Что нужно
менять в "шапке" программы - имеется ввиду в исходнике, чтобы эта
программулина пошла для PIC12F508?
Заранее спасибо.
Да. Кстати. Вот "шапка" программы:
;************************************************************
LIST p=12C508 ; PIC12C508 is the target processor *
__CONFIG b'111111101110' ; *
; osc=intrc(Fв Єв=4Mhz), wdte=on, cp=off, mclre=off *
P.s. А когда я открываю hex-файл, то почему-то стоит бит защиты "CP"?
Как снять его? Надо откалибровать константу в последней стороке для
определенного кристалла?
если я не списал калибровочную константу изначальна и потом стер
PIC12F508, то все - капут? Либо еще ее можно как то вернуть к жизни?
Спасибо.
Ну вот как-то так.
Я вот и хочу зашить вместо PIC12c508 - PIC12F508, так и не получается - об этой проблеме писал в теме: "PIC12C508 - замена на PIC12F508 (прошивка "Световой еж"). Может Вы можете как то прокоментировать, подсказать.
Вот в чем проблема:
Скачал прошивку "HEDGEHOG.hex" вот ссылка -
http://www.musidora.ru/carryhedg.htm. Она изначально используется для
PIC12C508. Поскольку это одноразовый кристалл, я решил заменить его на
PIC12F508 ("F" - перезаписываемый). Естественно, ничего не получается
прошить. Может кто сталкивался с этим? Помогите пожалуйста. Что нужно
менять в "шапке" программы - имеется ввиду в исходнике, чтобы эта
программулина пошла для PIC12F508?
Заранее спасибо.
Да. Кстати. Вот "шапка" программы:
;************************************************************
LIST p=12C508 ; PIC12C508 is the target processor *
__CONFIG b'111111101110' ; *
; osc=intrc(Fв Єв=4Mhz), wdte=on, cp=off, mclre=off *
P.s. А когда я открываю hex-файл, то почему-то стоит бит защиты "CP"?
Как снять его? Надо откалибровать константу в последней стороке для
определенного кристалла?
если я не списал калибровочную константу изначальна и потом стер
PIC12F508, то все - капут? Либо еще ее можно как то вернуть к жизни?
Спасибо.
Ну вот как-то так.

