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

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

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

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

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

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


Закрытая тема
Опции темы
Непрочитано 01.12.2016, 10:36   #11
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от worldmasters Посмотреть сообщение
Проблема возникает в том появляются ситуации когда начинается чтение буфера по SPI но в этот же момент идет изменение этого буфера в основном коде так как сработало прерывание от датчика какого нибудь.

Хотел сделать второй буфер, но проблема в том что понятия цикла опроса не существует и данные с датчиков сыпятся как только готовы.
Не описана политика сбора данных
Не описана политика интерфейса с хостом.

типа:
Времянки всего, обновление не переданных показаний, кто инициатор обмена, что делать если датчик не готов, если есть новые данные а старые ещё не переданы?
Реклама:
makakus вне форума  
Непрочитано 01.12.2016, 11:03   #12
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Организация памяти.

Чтобы избежать долгого копирования всего буфера, можно перед передачей инфы в головное устройство от очередного датчика сначала скопировать инфы от этого датчика (я так понимаю, инфа содержит несколько байт на датчик) во временный буфер, и передать из временного буфера. И так для каждого датчика.
Так же мы не знаем, как именно головное устройство запрашивает инфу. В виде байтовой команды? Или в виде опускания чип-селект?
NewWriter вне форума  
Непрочитано 01.12.2016, 11:30   #13
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от NewWriter Посмотреть сообщение
Чтобы избежать долгого копирования всего буфера
Зачем копировать буфер?! Все работают по указателю, он указывает то на один буфер, то на другой. Хорошо, два указателя: один для SPI другой для датчиков.
makakus вне форума  
Непрочитано 01.12.2016, 11:48   #14
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от NewWriter Посмотреть сообщение
Или в виде опускания чип-селект?
CS сигнал. Срабатывает высокоприоритетное прерывание и включается спи.

Сообщение от makakus Посмотреть сообщение
Зачем копировать буфер?! Все работают по указателю, он указывает то на один буфер, то на другой. Хорошо, два указателя: один для SPI другой для датчиков.
Я выше писал что голове требуется актуальные данные. АЦП работает быстро а УЗ медленно ...
Голова за раз считывает все данные.

Последний раз редактировалось worldmasters; 01.12.2016 в 11:53.
worldmasters вне форума  
Непрочитано 01.12.2016, 12:03   #15
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от worldmasters Посмотреть сообщение
Я выше писал что голове требуется актуальные данные. АЦП работает быстро а УЗ медленно
Вы, если хотите помощи, распишите процесс: что когда за какое время, кто кого пинает кто кому чего должен.
А экстарсенсорить кто у вас голова и что такое УЗ, сколько времени "быстро" и "медленно" как-то непонятно почему мы должны.
makakus вне форума  
Непрочитано 01.12.2016, 12:17   #16
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Организация памяти.

Копировать во временный буфер текущую передаваемую инфу нужно для того, чтобы сохранить целостность инфы. Допустим, передаётся первый байт инфы одного датчика, а в этот момент из-за прерывания датчик изменяет инфу и второй байт будет уже другой. Получится грубая ошибка.

Если одни датчики быстро готовят инфу, а другие медленно, а головном нужно выдать немедленно по запросу актуальную инфу по сразу всем датчиках, то такого не будет. Инфа будет передана такая, которая была на мебель последнего получения с датчиков.

Последний раз редактировалось NewWriter; 01.12.2016 в 12:22.
NewWriter вне форума  
Непрочитано 01.12.2016, 12:35   #17
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от NewWriter Посмотреть сообщение
Копировать во временный буфер текущую передаваемую инфу нужно для того, чтобы сохранить целостность инфы. Допустим, передаётся первый байт инфы одного датчика, а в этот момент из-за прерывания датчик изменяет инфу и второй байт будет уже другой. Получится грубая ошибка.
Вот такая ошибка и получается... ((

Сообщение от NewWriter Посмотреть сообщение
Если одни датчики быстро готовят инфу, а другие медленно, а головном нужно выдать немедленно по запросу актуальную инфу по сразу всем датчиках, то такого не будет. Инфа будет передана такая, которая была на мебель последнего получения с датчиков.
да да .. именно .. пусть будут переданы новые данные по 3 цапам а другие данные как есть. Но нужно исключить ситуацию как в первом варианте.


Сейчас сделал блокировку на запись при включенном спи.
Наверное невероятная ситуация когда идет запись в буфер и приходит запрос по спи.
float значение вписывается в буфер со скоростью 3.5us.
worldmasters вне форума  
Непрочитано 01.12.2016, 12:40   #18
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от NewWriter Посмотреть сообщение
Копировать во временный буфер текущую передаваемую инфу нужно для того, чтобы сохранить целостность инфы. Допустим, передаётся первый байт инфы одного датчика, а в этот момент из-за прерывания датчик изменяет инфу и второй байт будет уже другой. Получится грубая ошибка.
Это очевидно. Только не нужно.
Пусть "датчик изменяет инфу" в другом месте! Делает не рабочий буфер и его копию для передачи, а два рабочих буфера, памяти столько же. Добавляете два указателя на эти буферы. Один для датчиков, второй - для передатчика. Датчик пишет по адресу Указатель_1+длина данных*номер датчика. Передатчик передаёт байты начиная с указателя_2. Когда заполнится рабочий буфер, указатели меняют адреса наоборот.
Вопрос "когда переключить буферы" вообще говоря требует творческого подхода, как здесь где сталкивается "быстро" и "медленно". Зависит от применения: в электросчётчиках надо строго одновременно оцифровать напряжение и ток, а если это датчики температуры, разбросанные по двигателю или там котлу, то временной разнобой на пару секунд ничего не меняет.
makakus вне форума  
Непрочитано 01.12.2016, 12:53   #19
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Организация памяти.

Сообщение от worldmasters Посмотреть сообщение
Наверное невероятная ситуация когда идет запись в буфер и приходит запрос по спи.
была бы невероятная не было бы ошибок. Они выскакивают при любой вероятности, видел ошибки при вероятности 10^-24.


Сообщение от worldmasters Посмотреть сообщение
едаётся первый байт инфы одного датчика, а в этот момент из-за прерывания датчик изменяет инфу и второй байт будет уже другой
Сообщение от worldmasters Посмотреть сообщение
пусть будут переданы новые данные по 3 цапам а другие данные как есть.
Проще всего так: запрет прерывания от датчика - копирование данных одного датчика во временный буфер - разрешение прерывания - передача - следующий датчик.
makakus вне форума  
Непрочитано 01.12.2016, 13:16   #20
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Организация памяти.

Ха. Я этот вариант уже дважды предложил.
Какая разница, копировать все равно придётся.
NewWriter вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МСС18: корректировка файла линкера - выделение памяти urry Микроконтроллеры, АЦП, память и т.д 0 08.12.2009 10:32
А что если...прицепить к МК планку DDR памяти? vchik Микроконтроллеры, АЦП, память и т.д 9 03.06.2008 08:47
Как уменьшить размер памяти под стек? greafuger Микроконтроллеры, АЦП, память и т.д 1 03.04.2008 08:23


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


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