Vyatsek
Apr 26 2005, 11: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
Цитата(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
Apr 26 2005, 12:28
Цитата
Кстати, для очистки регистра можно использовать команду clrf,
там стоит так чтобы не переписывать команду а просто менять значение которое записывается в TRISIO.
Сразу бросилось в глаза...ошибка по невнимательности, у меня один раз тож такой баг был...
Цитата
movwf 0x07
movlw CMCON
По логике вы хотите записать 0х07 в CMCON, только посмотрите внимательно, вы перепутали команды местами.
У вас выполняется
запись W->0x07
содержимое CMCON->W
Хотя по логике нужно
константа 0х07->W
содержимое W->CMCON
Таким образом, правильно будет написать
movlw 0x07
movwf CMCON
PS: ниже по ходу программы нужно все поправить по аналогии!
Vyatsek
Apr 28 2005, 11:13
Спасибо за подсказку сказываются команды другого ассемблера

)
Vyatsek
Apr 28 2005, 11:34
теперь прога имеет вид:
__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
работает в симуляторе, но порт контроллера молчит............может еще что-то?? питание есть и директива указывает на внутреннюю ЭР ЦЭ - цепочку
Сразу оговрюсь что сужу по 16-й серии PIC, но думаю здесь все аналогично...
Первое, что может быть, срабатываение сторожевой собачки WDT каждые 18 мс, что сбрасывает МК...так что отключите ее нафиг, если еще не отключили.
Второе, в схеме у вас MCLR на плюс питания подтянут через резистор? Если нет, то МК в состоянии сброса всегда!!!
Vyatsek
Apr 29 2005, 08:29
Да спасибо без вэ дэ работает когда запаял резюк...........но по идее я его настраивал как выход............по этому думал что не надо, надо еще почитать, спасибо за совет.........
Andrey_M
May 2 2005, 18:37
Цитата(Vyatsek @ Apr 29 2005, 11:29)
Да спасибо без вэ дэ работает когда запаял резюк...........но по идее я его настраивал как выход............по этому думал что не надо, надо еще почитать, спасибо за совет.........
Если вход MCLR не используется не забудь повесить на него кондерчик примерно 1 нФ тогда помехи не будут беспокоить даже сильные. А вообще это хороший PIC только он очень богат регистрами и тем сложен но если все настроить то работает отлично.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.