18.05.2016, 12:22
|
|
Прописка
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
|
Re: Пишем свое API
Наверное просто данный случай весъма запущеный, спорить не о чем. Если сделать по уму, то аппаратура во всём выиграет по сравнению с ногодрыгом.
|
|
|
|
18.05.2016, 12:43
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Пишем свое API
Сообщение от cogen
|
Наверное просто данный случай весъма запущеный
|
И2Ц сам по себе унылый и запущенный.
Сообщение от cogen
|
Если сделать по уму, то аппаратура во всём выиграет по сравнению с ногодрыгом.
|
Не в случае с И2Ц. Это у вас от недостатка знаний по железу. Железо разных производителей пестрит ерратами и костылями по И2Ц. Протокол не сильно шустрый, объёмы невелики, поэтому в сложившейся ситуации, для мастера, ногодрыжный вариант будет в большинстве случаев нормальным решением. Для слэйва, конечно, наилучшим будет хардварное решение.
|
|
|
|
18.05.2016, 13:10
|
|
Прописка
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
|
Re: Пишем свое API
Шина как шина, простейший протокол, синхронная альтернатива UART/MODBUS
Я конечно не опытный практик, измученный нарзаном, поэтому наивно полагаю что как-нибудь железо работает. Конечно, если оно теряет прерывания по приему байта, то толку в нем нет, но наверняка в следующей ревизии это чинят. Расскажите конкретнее про грабли - где и какие.
Объемы бывают и большие, скажем килобайтный буфер сенсора. Дрыгать пином вдобавок к другим задачам - не слишком ли накладно?
|
|
|
|
18.05.2016, 13:45
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Пишем свое API
Кстати, касательно I2C master на STM, оно отлично работает на прерываниях и DMA. Все легко, интуитивно понятно и как-то не вызывает проблем. А вот методом ожидания флагов... короче, килобайтные посылки разумнее делать на прерываниях. А мелкие пачки лучше гонять ногодрыгом. Хотя если пользовать RTOS, наплевать и на ногодрыг с килобайтами.
|
|
|
|
22.05.2016, 00:04
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Пишем свое API
Фильтр Калмана. Еще не тестировал.
Код:
|
void KalmanFloatCalc (KalmanFloatTypeDefStruct * KalmanFloatStruct)
{
KalmanFloatStruct-›Result = KalmanFloatStruct-›K * KalmanFloatStruct-›Value;
KalmanFloatStruct-›Value = 1.0 - KalmanFloatStruct-›K;
KalmanFloatStruct-›Previous *= KalmanFloatStruct-›Value;
KalmanFloatStruct-›Result += KalmanFloatStruct-›Previous;
KalmanFloatStruct-›Previous = KalmanFloatStruct-›Result;
} |
Код:
|
typedef struct
{
float Result; //результирующее значение
float Value; //исходное значение
float Previous; //результат вычисления в предыдущей интерации
float K; //коэффициент стабилизации, по-умолчанию = 0.1
}KalmanFloatTypeDefStruct; |
Взято отсюда.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
22.05.2016, 00:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,982
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Пишем свое API
Сообщение от cogen
|
синхронная альтернатива UART/MODBUS
|
никуя се альтернатива! внутриплатная и межобъектная - разница, как хер с пальцем! а MODBUS вообще за "уй притянут сюда, это программная реализация над аппаратным решением
|
|
|
|
22.05.2016, 01:23
|
|
Прописка
Регистрация: 25.04.2010
Сообщений: 24
Сказал спасибо: 9
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
|
Re: Пишем свое API
i2c ногодрыгом тоже чисто программная реализация, и что? и ниразу не внутриплатная, в текущем проекте несколько отдельных плат на ней висят, а в одном предыдущем проекте - наоборот, два контроллера на одной плате по UART на 1Мбит общались. Некоторые извращенцы и на 100 метров i2c используют тыц.
С другой стороны, здесь сказано: This optional MODBUS on Serial Line system should only be used for short length ( typically less than 20m ) point to point interconnection.
Шину можно даже без согласователей сделать, тот же STM32 имеет возможность переключать вывод TX в конфигурацию с открытым стоком.
Последний раз редактировалось cogen; 22.05.2016 в 01:28.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
свое USB устройство
|
ESWANT |
Микроконтроллеры, АЦП, память и т.д |
2 |
08.09.2009 14:58 |
Часовой пояс GMT +4, время: 07:36.
|
|