Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите разобраться с косвенной адресацией и регистром EECON1

Непрочитано 25.04.2011, 15:39  
rom864
Прохожий
 
Регистрация: 13.04.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rom864 на пути к лучшему
По умолчанию Помогите разобраться с косвенной адресацией и регистром EECON1

Необходимо прочитать данные с адреса EEPROM микроконтроллера PIC16F628A. При этом использую в программе MPLAB IDE v8.10 функцию MPLAB SIM.
В даташите на микроконтроллер популярно описана инструкция чтения данных с наглядным примером:
BCF STATUS, RP ; Выбор банка 1
MOVLW CONFIG_ADDR
MOVWF EEADR
BSF EECON, RD
MOVF EEDATA, W
При компиляции данного блока в окне “OUTPUT” в вкладке “Build” возникают сообщения: Message[302] Register in operand not in bank 0. Ensure that bank bits are correct.
В принципе все понятно при семи битной, прямой адресации к SFR-регистрам начиная с адреса 80h доступа нет. Часто используют метод, когда при выборе банка адресуют не на абсолютный адрес пространства, а на относительный – в пределах банка, добавляя при этом выражение к регистру типа 07f&«SFR» В таких случаях «Message[302] не возникает.
Часть программы с этими выражениями вполне нормально функционирует, пока не дошел до регистров функционала EEPROM: EECON1; EEDATA; EEADR. Стала возникать предупреждение Warning[219] Invalid RAM location specified. И тут метод относительной адресации сыграл со мною злую шутку, добавляя, например выражение 07f&EECON1 получаем 07F&09C адрес 1С а вот этот адрес данный микроконтроллер использовать не может, чем подтверждается прочерком в окне «File Registers» и в файле P16F628A.INC в разделе «RAM Definition». Для регистров EEDATA и EEADR получаем адреса 1А и 1B соответственно, их тоже не можем использовать.
Подумал решить проблему методом косвенной адресации для регистра EEADR.
BCF STATUS, IRP ; Выбор банка 1
MOVLW 0x9B
MOVWF FSR
MOVLW 0x24
MOVWF INDF
Все получилось. А вот для регистра EECON1 почему-то не получилось записать значение в бит “RD”
BCF STATUS, IRP ; Выбор банка 1
MOVLW 0x9C
MOVWF FSR
MOVLW 0x01
MOVWF INDF
Предупреждений, при компиляции, никаких нет, а в пошаговом режиме значение регистра EECON1 не изменяется. Вопрос простой: почему? Может, существуют другие методы изменения регистра EECON1…
Реклама:

Последний раз редактировалось rom864; 28.04.2011 в 08:18.
rom864 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с импульсными стабилизаторами Vas2 Источники питания и свет 8 07.12.2007 17:27
[Решено] Помогите разобраться. didik-dog Отвлекитесь, эмбеддеры! 5 02.09.2007 21:09
Помогите разобраться Mihail-1 Информация по радиокомпонентам 5 02.03.2007 00:13
кто пользуеться VMLABом. помогите разобраться... zuuuuk Proteus, KiCAD и другие ECAD 1 04.10.2006 12:12
помогите разобраться со схемой miragemirage Делимся опытом 9 08.12.2005 18:39


Часовой пояс GMT +4, время: 13:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.