Касательно простых "среднемладших"... Директива DT определяет таблицу в ПЗУ программы в виде серии команд RETLW k8. А команда с INDF (через адрес в FSR) обращается к ОПЕРАТИВНОЙ ПАМЯТИ. Несколько иначе у 18й и у "улучшенной" среднемладшей. Но там уже не dt, а db/dw используется.
Однако нужно уточнить о каком конкретно МК идет речь. Ибо в относительно новых PIC16 есть видимость флеша в пространстве ОЗУ (младший байт), начиная с адреса 0x8000. Судя по однобайтному FSR, речь идет о чем то очень примитивном типа PIC10F200
Вообще то В ШИРОКОМ СМЫСЛЕ старшие 6 разрядов так же именуют байтом. Патамушта при чтении старшего (где это реализовано) в 7-8 битах читается фантомный ноль.
Зарегистрирован: Вт май 07, 2013 23:16:23 Сообщений: 37
Рейтинг сообщения:0
Да, забыл указать контроллер PIC18f452. db и dw - пробовал, результат тот же, т. е. в переменной temp вижу не таблицу, а данные регистров FSR. Подскажите, может есть другое решение, мне нужно в переменную temp поочередно передать табличные данные PICTURE_0?
Прошу прощения два проекта), контроллер PIC16f676 на самом деле!
Последний раз редактировалось titr Сб авг 29, 2020 08:30:38, всего редактировалось 1 раз.
Первое - у 18й три регистра FSR и, соответственно, в командах необходимо указывать к какому из оных обращение будет (то же и INDF касается). Второе - 18я серия ("стандартная") также использует FSR/@INDF для доступа к ОЗУ данных. Для доступа к ПЗУ используются TBLRD/TBLWT(*;*+;*-;+*) и содержимое TBLPTR. Пока с 18й в реале дел не имел - только подготовительный этап лет... назад сделал - таблички перечня возможных команд. А воть со среднемладшей те шпоргалки уже достаточно хорошо проверены.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения