Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает код для PIC12F675 из 15 строк
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Vyatsek
Подскажите почему не работает следующий код, если кто может
ORG 0x000 ; coding begins here

bcf STATUS, RP0

clrf GPIO
movwf 0x07
movlw CMCON

bsf STATUS, RP0
movwf 0x00
movlw TRISIO

bcf STATUS, RP0

lp:

movwf 0xFF
movlw GPIO
movwf 0x00
movlw GPIO
GOTO lp

END
acex2
Цитата(Vyatsek @ Apr 26 2005, 08:06)
Подскажите почему не работает следующий код, если кто может
                                ORG    0x000            ; coding begins here

  bcf STATUS, RP0 

                clrf GPIO
  movwf 0x07
  movlw CMCON

  bsf STATUS,  RP0 
  movwf 0x00
  movlw TRISIO
 
  bcf  STATUS,  RP0 

lp: 

  movwf 0xFF
  movlw GPIO
  movwf 0x00
  movlw GPIO
  GOTO lp

END
*



Как минимум, не настроен ANSEL. Кстати, для очистки регистра можно использовать команду clrf, например clrf TRISIO.
Vyatsek
Цитата
Кстати, для очистки регистра можно использовать команду clrf,

там стоит так чтобы не переписывать команду а просто менять значение которое записывается в TRISIO.
Algol
Сразу бросилось в глаза...ошибка по невнимательности, у меня один раз тож такой баг был...

Цитата
movwf 0x07
movlw CMCON


По логике вы хотите записать 0х07 в CMCON, только посмотрите внимательно, вы перепутали команды местами.
У вас выполняется
запись W->0x07
содержимое CMCON->W
Хотя по логике нужно
константа 0х07->W
содержимое W->CMCON
Таким образом, правильно будет написать
movlw 0x07
movwf CMCON
PS: ниже по ходу программы нужно все поправить по аналогии!
Vyatsek
Спасибо за подсказку сказываются команды другого ассемблера smile.gif)
Vyatsek
теперь прога имеет вид:
__CONFIG _INTRC_OSC_NOCLKOUT

ORG 0x000 ; coding begins here

bcf STATUS, RP0
clrf GPIO
movlw 0x07
movwf CMCON
bsf STATUS, RP0
movlw 0x00
movwf TRISIO
clrf ANSEL

bcf STATUS, RP0

lp:
movlw 0xFF
movwf GPIO

movlw 0x00
movwf GPIO
GOTO lp

END
работает в симуляторе, но порт контроллера молчит............может еще что-то?? питание есть и директива указывает на внутреннюю ЭР ЦЭ - цепочку
Algol
Сразу оговрюсь что сужу по 16-й серии PIC, но думаю здесь все аналогично...
Первое, что может быть, срабатываение сторожевой собачки WDT каждые 18 мс, что сбрасывает МК...так что отключите ее нафиг, если еще не отключили.
Второе, в схеме у вас MCLR на плюс питания подтянут через резистор? Если нет, то МК в состоянии сброса всегда!!!
Vyatsek
Да спасибо без вэ дэ работает когда запаял резюк...........но по идее я его настраивал как выход............по этому думал что не надо, надо еще почитать, спасибо за совет.........
Andrey_M
Цитата(Vyatsek @ Apr 29 2005, 11:29)
Да спасибо без вэ дэ работает когда запаял резюк...........но по идее я его настраивал как выход............по этому думал что не надо, надо еще почитать, спасибо за совет.........
*



Если вход MCLR не используется не забудь повесить на него кондерчик примерно 1 нФ тогда помехи не будут беспокоить даже сильные. А вообще это хороший PIC только он очень богат регистрами и тем сложен но если все настроить то работает отлично. excl.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.