[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: Хм.... мыслей по существу нет, но вот нашел фривольное обращение с FSR....
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Билдер++_ 25 февраля 2002 г. 08:13
В ответ на: Проблема с портом вв/выв на 12с508а в MPLAB всё работает, а запрог микр не работает отправлено Sasha 24 февраля 2002 г. 16:54

Здравствуйте!

movlw 07h
movwf fsr
cl1 clrf indf
incf fsr,f
movf fsr,w
xorlw b'11100000'
btfss status,z
goto cl1

PIC12C508A: Поосторожнее с битами 6 и 5 FSR... Они читаются как '1's вне зависимости от того, что вы туда писали...
Кстати, у PIC12C509A - '1' читается только бит 6, а бит 5 переключает банки (вот наворотили, руки бы оторвать)... Поэтому, часто бывает невозможность работы программы, компилированной для PIC12C508A на кристаллах PIC12C509A.
Оптимальное решение - вообще не читать FSR. А для операций использовать image-регистр, и после каждой операции уже из него копировать в FSR.

Косвенная догадка на основании "длинного" опыта работы с PIC...
Попробуйте последовательно с pin's, конфигурированными на вход включить резисторы по 1кОм, особенно, если к этим "ногам" подключаются кнопки, или контактные датчики, замыкающиеся на "корпус". С первого взгляда это может показаться бессмыслицей, однако, смысл в этом имеется, уж поверьте, проверено неоднократно.

movlw b'00111011'
tris GPIO
bsf GPIO,2
Только что проверил на макете, на JW-кристалле, у меня в режиме InternalRC всё проходит, GPIO,2 конфигурится на вывод и "стоит" в бесконечном цикле в '1'. (Все ноги никуда не подключены "висят в воздухе").

Желаю решить траблу.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru