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

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

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

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

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

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

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

 
Опции темы

Таблица адресов для внеш. памяти

Непрочитано 23.06.2013, 19:55  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Таблица адресов для внеш. памяти

В очередной раз затуп... Просветите, пожалуйста.
Опишу задачу. К AVR подключена внешняя память FRAM по SPI 2x4МГц, микроконтроллер собирает данные с датчиков, датчики разделены по зонам и номерам.
Т.е. получается таблица, где столбцы это зоны, строки - номера датчиков. Мы принимаем несколько байтов с данными и вписываем их в fram по определенному адресу, закрепленному именно за этим датчиком, например зона 2, датчик 6. Мне напрашивается таблица с адресам, чтобы просто задав номер ячейки таблицы записать данные. Но, что-то таблица в уме прикидывается немаленькая(мин 15x15)

Забить на данную реализацию и сделать так?
Несколько первых байт в фрам отводим под счетчик, с начального адреса(после адреса счетчика) начинаем писать, просто задав в заголовке зону и номер, а далее данные. Сохранять в счетчик адрес следующей записи и т.д. Потом скопом считывать разбирая(сортируя) по заголовку в таблицу!?

Вся соль в том, что данные могут модифицироваться,т.е. лучше обратиться напрямую по адресу, чем перебирать и искать по индексу.
Вот тут и затык...
Данные могут приходить от разных датчиков, кол-во получается приличное, соответственно и время на обработку критично.

Как считаете, расчитывать и вбивать адреса в программу?
Реклама:
Saadov вне форума  
Непрочитано 23.06.2013, 20:19  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Выделить каждому датчику свое пространство по 2-4-8 и т.д. байт и записывать по таблице. Второй вариант только увеличит нагрузку на и так слабенький контроллер, да и запутаться/ошибиться проще
niXto вне форума  
Сказали "Спасибо" niXto
Saadov (23.06.2013)
Непрочитано 23.06.2013, 20:37  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Буду сейчас высчитывать адреса, спасибо.
Saadov вне форума  
Непрочитано 23.06.2013, 20:39  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,457
Сказал спасибо: 3,225
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Я - за "фиксированные размеры разделов для зон и датчиков + математика со степенями 2".
Сообщение от Saadov Посмотреть сообщение
Вся соль в том, что данные могут модифицироваться,т.е. лучше обратиться напрямую по адресу, чем перебирать и искать по индексу.
Во ФРАМ чтение разрушаюшее и тоже расходует ресурс.
ForcePoint вне форума  
Непрочитано 23.06.2013, 20:45  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Сообщение от ForcePoint Посмотреть сообщение
Я - за "фиксированные размеры разделов для зон и датчиков + математика со степенями 2".
Разделы и так будут фиксированные, я же знаю сколько байт я приму.
Сообщение от ForcePoint Посмотреть сообщение
Во ФРАМ чтение разрушаюшее и тоже расходует ресурс.
Мне 10 в 12 степени хватит(1 триллион износостойкость).
Saadov вне форума  
Непрочитано 23.06.2013, 20:55  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Сообщение от ForcePoint Посмотреть сообщение
Во ФРАМ чтение разрушаюшее и тоже расходует ресурс.
На наш век хватит.
_Артём_ вне форума  
Непрочитано 24.06.2013, 03:58  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Лень было вбивать адреса вручную, да и вдруг изменить надо будет.
Состряпал простенькую программку, без всяких украшательств, можно сказать - под себя. Но вдруг кому нужна будет. По идее будет работать у всех с NET Framework 4.0,4.5

Просто вбивается начальный адрес, потом выбирается количество байт(пространство на которое будет ссылаться адрес), задаем размерность массива, выводим, получается массив адресов, который автоматом копируется в буфер обмена для вставки в программу для микроконтроллера.
Вложения:
Тип файла: rar Address Array.rar (5.1 Кб, 46 просмотров)

Последний раз редактировалось Saadov; 25.06.2013 в 00:12.
Saadov вне форума  
Непрочитано 24.06.2013, 06:20  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Какая сложность вычислить адрес mas[x][y][z]? Зачем таблицы?
А mas может располагаться где угодно...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 24.06.2013, 09:38  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Сообщение от Saadov Посмотреть сообщение
задаем размерность массива, выводим, получается массив адресов, который автоматом копируется в буфер обмена для вставки в программу для микроконтроллера
А почему нельзя пойти традиционным способом? Например, так:
Код:
#define N_Sensrs     15

uint8   uiZone,     // номер зоны
        uiSens;     // номер датчика

        address = base_addr + ( (uiZone-1)*N_Sensrs + uiSens )*sizeof( тип_элемента_данных_с_дачик  а );
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Сказали "Спасибо" tempora
Saadov (25.06.2013)
Непрочитано 24.06.2013, 22:32  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Таблица адресов для внеш. памяти

Сообщение от akegor Посмотреть сообщение
Какая сложность вычислить адрес mas[x][y][z]? Зачем таблицы?
Приведите кусок кода, пожалуйста.
Сообщение от tempora Посмотреть сообщение
А почему нельзя пойти традиционным способом? Например, так:
N_Sensrs 15 - это кол-во байт в памяти отведенных на 1 датчик?
Saadov вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Апгрейд и комплектующие для ноутбуков mikesmith Барахолка электронных компонентов 28 17.05.2023 23:25
2012г - конец или начало? ve_de Отвлекитесь, эмбеддеры! 89 31.10.2008 16:05
Краткий обзор методов помехоустойчивого программирования для Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 0 09.04.2008 01:17
из DVD в DVD-player реально? Altalimir Микроконтроллеры, АЦП, память и т.д 14 17.09.2007 21:21
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49


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


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