Например TDA7294

Форум РадиоКот • Просмотр темы - Не могу разобраться с директивой db
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт май 15, 2025 02:25:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не могу разобраться с директивой db
СообщениеДобавлено: Ср мар 22, 2017 19:59:31 
Родился

Зарегистрирован: Сб янв 25, 2014 18:09:09
Сообщений: 15
Рейтинг сообщения: 0
Я не могу понять, как воспользоваться значением, помещенным в память программы при помощи директивы db. Когда я пытаюсь подставить название, программа выдает мне адрес зарезервированного под переменную места, а до значения я никак не могу достучаться. Я знаю, что одиночная переменная объявляется при помощи variable, но мне нужно задать массив, который длиннее, чем можно запихнуть в регистры


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не могу разобраться с директивой db
СообщениеДобавлено: Чт мар 23, 2017 04:24:38 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2916
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23677
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
1. db - это способ определения КОНСТАНТ, а не переменных.
2. Эти константы будут размещены в ПРОГРАММНОЙ ПАМЯТИ.
3. Чтение программной памяти в 8-разрядных PIC-ах осуществляется через команды ТАБЛИЧНОГО ЧТЕНИЯ.
Табличное чтение осуществляется через специальный регистр указатель TBLPTRx в который (в которые) нужно записать адрес (ту самую метку+смещение данных относительно нее с учетом адресной размерности (в 16-х через один, а в 18-х через два адреса).
Далее следует ассемблерная команда tblrd, которая производит транзакцию из текущего адреса флеша по указателю в регистр TABLAT, откуда далее можно забрать данные по назначению.
Более подробно Вы можете все это прочесть в даташите на контроллер в разделе табличное чтение программной памяти.
Кстати, табличное чтение непосредственно флеша есть не у всех 8-разрядных контроллеров Микрочипа... В тех, где его нет табличное чтение производится через команду retlw <const>.
Если перед обсуждаемой директивой стоит ORG с определением абсолютного адреса EEPROM данных (флеша данных, если он имеется в данном МК), то чтение осуществляется уже через адресный регистр указатель этого флеша и, соответственно, его регистра защелки данных.
В 16-разрядных контроллерах Микрочипа имеется также способ доступа к флешу через PSV-доступ, когда флеш отображен на адресное пространство ОЗУ, начиная с адреса 0x8000.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не могу разобраться с директивой db
СообщениеДобавлено: Чт мар 23, 2017 06:41:44 
Родился

Зарегистрирован: Сб янв 25, 2014 18:09:09
Сообщений: 15
Рейтинг сообщения: 0
То есть, в PIC12F509 нужно писать все значения через RETWL?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не могу разобраться с директивой db
СообщениеДобавлено: Чт мар 23, 2017 08:19:41 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1464
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14984
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Для "среднемладших" (10-12-16) это основной способ обращения.
Особо для 8-16 выводных.
Только там не DB, а DT должно использоваться для генерации именно retlw 0xNN.
Есть кристаллы с чтением ПЗУ как ЕЕПРОМ - но то "весьма индивидуально" - у каждого надо в даташит вчитываться.
Отличия только для "энхансед" с четырехзначными суффиксами (PICnnFxxxx) - там уже гибрид с 18-й серией.
:dont_know:


Вернуться наверх
 
Открыт интернет-магазин MEAN WELL.Market – весь ассортимент MEAN WELL, выгодные цены

Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России. На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y