Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

FSR & INDF

Пн авг 24, 2020 17:36:57

Здравстуйте радиокоты!
Подскажите почему не работает такой код?

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

Касательно простых "среднемладших"...
Директива 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

Однако не директивой же dt тогда укладывать - там db по логике должна быть...
:roll:

Re: FSR & INDF

Ср авг 26, 2020 21:38:36

Это не имеет никакого значения. Все равно читается только младший байт. А будет в старшем 0x00 или 0x34 - ничего не меняет.

Re: FSR & INDF

Чт авг 27, 2020 10:09:14

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

Re: FSR & INDF

Чт авг 27, 2020 18:23:54

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

Re: FSR & INDF

Сб авг 29, 2020 07:29:12

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

Прошу прощения два проекта), контроллер PIC16f676 на самом деле!
Последний раз редактировалось titr Сб авг 29, 2020 08:30:38, всего редактировалось 1 раз.

Re: FSR & INDF

Сб авг 29, 2020 08:22:04

Первое - у 18й три регистра FSR и, соответственно, в командах необходимо указывать к какому из оных обращение будет (то же и INDF касается).
Второе - 18я серия ("стандартная") также использует FSR/@INDF для доступа к ОЗУ данных.
Для доступа к ПЗУ используются TBLRD/TBLWT(*;*+;*-;+*) и содержимое TBLPTR.
Пока с 18й в реале дел не имел - только подготовительный этап лет... назад сделал - таблички перечня возможных команд.
А воть со среднемладшей те шпоргалки уже достаточно хорошо проверены.
шаблон_команд_PIC10_12_16.pdf
(648.72 KiB) Скачиваний: 148

шаблон_команд_PIC10_12_16_em.pdf
(786.17 KiB) Скачиваний: 128

шпора_PIC18_v2.pdf
(55.09 KiB) Скачиваний: 159

8)
Вот еще источник информации:
страничка с перечнем документации
http://www.microchip.ru/lit/?mid=1x0
Сама документацтя
http://www.microchip.ru/files/d-sheets- ... manual.pdf
:beer:
Ответить