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

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

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

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

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

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

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

 
Опции темы
Непрочитано 21.08.2007, 11:45  
DAS_WEYDER
Временная регистрация
 
Аватар для DAS_WEYDER
 
Регистрация: 14.04.2007
Сообщений: 50
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
DAS_WEYDER на пути к лучшему
По умолчанию как в PIC 18F452 считать из такойто ячейки ОЗУ данные?

я хочу в банк такойто забить таблицу ячейки 0-256.
но я не знаю как, записать/считать .

Например в ячейку с адресом таким-то записываем то-то.
И считываем из ячейки с адресом таким-то то-то.

програмирываю я на асемблере.
Реклама:
DAS_WEYDER вне форума  
Непрочитано 21.08.2007, 13:52  
olegras
Прохожий
 
Регистрация: 19.12.2006
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
olegras на пути к лучшему
По умолчанию

Не совсем понятно, что конкретно Вам не понятно Записываем то-то, считываем то-то...
1) Прочитайте Data Sheet на ПИК, тем более именно на этот имеется документация на русском языке. Обратите внимание на пункты 4.10, 4.11, 4.12.
2) Вам нужно освоить операции перемещения данных (команды MOV) с прямой и косвенной адресацией.
3) Проанализируйте имеющиеся примеры в составе MPLAB.
4) А как же вы программируете на ассемблере, где чтение/запись данных является основой основ???
olegras вне форума  
Непрочитано 21.08.2007, 15:19  
DAS_WEYDER
Временная регистрация
 
Аватар для DAS_WEYDER
 
Регистрация: 14.04.2007
Сообщений: 50
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
DAS_WEYDER на пути к лучшему
По умолчанию

0. попробую еще раз объяснить. Я хочу в ОЗУ забить таблицу, а потом быстро вытягивать из нее данные из ячейки c адресом n.


1. прочитал но не могу понять примеров понятных мне нет.
2. вот это мне как раз и непонятно если возможно, моглибы вы дать мне небольшой рабочий пример.
3.
4. я переменные ОЗУ сразу объявляю типа такого:
TIMER_REVERS_SEK EQU .94 ;реверсный таймер
tF_L EQU .95 ;эталон межфазного периуда

потом вот так их использую: MOVF t_FAZA_L,W,0
DAS_WEYDER вне форума  
Непрочитано 21.08.2007, 17:02  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

http://www.microchip.ru/files/d-sheets-rus/pic16_6.pdf

-- Прилагается рисунок: --

urry вне форума  
Непрочитано 21.08.2007, 17:07  
olegras
Прохожий
 
Регистрация: 19.12.2006
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
olegras на пути к лучшему
По умолчанию

Такое обращение к ячейкам памяти как в вашем примере называется прямой адресацией. Удобно, но не всегда. Вам нужна косвенная адресация. Для этого имеются три регистра FSR0, FSR1 и FSR2. В них нужно записывать базовые (начальные) адреса ваших массивов (назовем так ваши таблицы). В общем случае в них записывается адрес (НЕ ЗНАЧЕНИЕ!) ячейки, с которой нужно работать.
Для чтения/записи из ячеек с этими адресами нужно обращаться к регистрам INDF0, INDF1 и INDF2 соответственно. Эти регистры физически не реализованы, но при обращении к ним фактически происходит обращение к ячейкам, адреса которых записаны в регистрах FSR.
Например.
Код:
;адрес ячейки памяти
ADDR_ARRAY EQU 0x0200 
;заносим в FSR0 этот адрес
LFSR	FSR0, ADDR_ARRAY
;читаем в W значение ячейки по адресу ADDR_ARRAY
MOVF INDF0, W, ACCESS
;записываем туда же число 0x9a
MOVLW 0x9a
MOVWF INDF0, ACCESS
;и инкременируем его там же
INCF INDF0, F, ACCESS
и так далее.
Кроме INDFx имеются так же и другие вспомогательные регистры, которые помимо функций доступа к ячейкам, изменяют значения регистров FSR. Это регистры POSTINCx, POSTDECx, PREINCx и PLUSWx. Для работы с данными в табличном виде (с массивами) как раз то что надо. Предлагаю самостоятельно их изучить в указанных мною разделах...
Удачи.
olegras вне форума  
Непрочитано 22.08.2007, 11:09  
DAS_WEYDER
Временная регистрация
 
Аватар для DAS_WEYDER
 
Регистрация: 14.04.2007
Сообщений: 50
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
DAS_WEYDER на пути к лучшему
По умолчанию

спасибо, теперь понятно.
DAS_WEYDER вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DS1307+SST89E54RD2 как и чем считать их общение Denexp Микроконтроллеры, АЦП, память и т.д 43 07.02.2009 02:08
Как считать iButton в комп satsoft Автоматика и аппаратура связи 3 19.03.2008 13:46
Подскажите, как считать несколько байтов из 24lc64 в pic??? Pavel645499 Микроконтроллеры, АЦП, память и т.д 15 25.10.2005 20:42
Как считать с GPS приемника информацию? graham Микроконтроллеры, АЦП, память и т.д 7 11.10.2005 22:33
Как посмотреть содержимое ячейки памяти. Vlasoft() Микроконтроллеры, АЦП, память и т.д 6 09.09.2003 22:53


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot