Страница 1 из 1

FSR & INDF

Добавлено: Пн авг 24, 2020 17:36:57
titr
Здравстуйте радиокоты!
Подскажите почему не работает такой код?

MOVLW PICTURE_0
MOVWF FSR
BBB
MOVF INDF,W
MOVWF temp
INCF FSR,F
GOTO BBB

...
PICTURE_0
dt H'FF',H'80',H'80',H'80',H'FF',H'00',H'00',H'FF',H'88',H'88',H'88',H'70'
в переменной temp нет данных таблицы PICTURE_0.

Re: FSR & INDF

Добавлено: Вт авг 25, 2020 11:33:03
BOB51
Касательно простых "среднемладших"...
Директива DT определяет таблицу в ПЗУ программы в виде серии команд RETLW k8.
А команда с INDF (через адрес в FSR) обращается к ОПЕРАТИВНОЙ ПАМЯТИ.
8)
Несколько иначе у 18й и у "улучшенной" среднемладшей. Но там уже не dt, а db/dw используется.
:roll:

Re: FSR & INDF

Добавлено: Ср авг 26, 2020 16:58:41
КРАМ
Однако нужно уточнить о каком конкретно МК идет речь. Ибо в относительно новых PIC16 есть видимость флеша в пространстве ОЗУ (младший байт), начиная с адреса 0x8000.
Судя по однобайтному FSR, речь идет о чем то очень примитивном типа PIC10F200
:)

Re: FSR & INDF

Добавлено: Ср авг 26, 2020 20:20:56
BOB51
Однако не директивой же dt тогда укладывать - там db по логике должна быть...
:roll:

Re: FSR & INDF

Добавлено: Ср авг 26, 2020 21:38:36
КРАМ
Это не имеет никакого значения. Все равно читается только младший байт. А будет в старшем 0x00 или 0x34 - ничего не меняет.

Re: FSR & INDF

Добавлено: Чт авг 27, 2020 10:09:14
BOB51
Для "среднемладших" возможно... там все равно - ячейка ПЗУ двухбайтовой не бывает (пока)...
А у 18-й таки два байта...
:roll:

Re: FSR & INDF

Добавлено: Чт авг 27, 2020 18:23:54
КРАМ
Вообще то В ШИРОКОМ СМЫСЛЕ старшие 6 разрядов так же именуют байтом. Патамушта при чтении старшего (где это реализовано) в 7-8 битах читается фантомный ноль.

Re: FSR & INDF

Добавлено: Сб авг 29, 2020 07:29:12
titr
Да, забыл указать контроллер PIC18f452.
db и dw - пробовал, результат тот же, т. е. в переменной temp вижу не таблицу, а данные регистров FSR.
Подскажите, может есть другое решение, мне нужно в переменную temp поочередно передать табличные данные PICTURE_0?

Прошу прощения два проекта), контроллер PIC16f676 на самом деле!

Re: FSR & INDF

Добавлено: Сб авг 29, 2020 08:22:04
BOB51
Первое - у 18й три регистра FSR и, соответственно, в командах необходимо указывать к какому из оных обращение будет (то же и INDF касается).
Второе - 18я серия ("стандартная") также использует FSR/@INDF для доступа к ОЗУ данных.
Для доступа к ПЗУ используются TBLRD/TBLWT(*;*+;*-;+*) и содержимое TBLPTR.
Пока с 18й в реале дел не имел - только подготовительный этап лет... назад сделал - таблички перечня возможных команд.
А воть со среднемладшей те шпоргалки уже достаточно хорошо проверены.
шаблон_команд_PIC10_12_16.pdf
(648.72 КБ) 193 скачивания
шаблон_команд_PIC10_12_16_em.pdf
(786.17 КБ) 169 скачиваний
шпора_PIC18_v2.pdf
(55.09 КБ) 215 скачиваний
8)
Вот еще источник информации:
страничка с перечнем документации
http://www.microchip.ru/lit/?mid=1x0
Сама документацтя
http://www.microchip.ru/files/d-sheets- ... manual.pdf
:beer: