[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Илья 24 января 2002 г. 07:37
В ответ на: А с чем это связано? отправлено zacora 23 января 2002 г. 17:09

Програмный счетчик состоит из двух частей: PCH и PCL
PCL - 8-и разрядный. При конструкции:
movfw Pointer
call TablRead
;
;
;
TablRead
addwf PC,f
retlw aa
retlw bb
и т.д.

если Pointer + текущийPCL влазит в h'ff', то всё ОК. Иначе, при переполнении PCL, PCH не изменится, и адрес будет неверным.
Пользуйтесь, при формировании таблиц, такой конструкцией:

ORG h'100' ; или h'200', или ...., где h'n00' начальный адрес таблицы
TablRead
addwf PC,f
retlw aa

и некоторые вопросы снимутся сами собой. (или извращайтесь с проверкой PCL + W)

P.S. подробности в доке на PIC п.п.4.3.1 СOMPUTED GOTO или в AN556

С уважением, Илья.

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

Ответы



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

E-mail: info@telesys.ru