-
- частоту запроса каким либо образом используете ? сan гарантирует
доставку, но не гарантирует время доставки - Aleksey_75(05.05.2025 16:04)
- Извините... Немного не понял вопроса. Частота запроса фиксирована,
но ее определяет внешняя сторона. В расчетах ее не использую.
Ускорение считаю как просто разность и смотрю на него потому что по
нему хорошо видно - Lem(05.05.2025 16:58)
- суть в том что у вас скорость идет в в цифрах can сообщения,
всплески могут быть если вы пытаетесь привести данные с сообщения к
таймстепу получения сообщения и на шине есть еще обмен, то это
тупик! арбитарж даст непредсказуемый тайминг - Aleksey_75(05.05.2025 18:11)
- Спасибо за ответ. Я правильно понял, что это скорее проблема для
стороны, которая посылает запрос? Просто я вижу выбросы именно что
в данных, которые посылает мой МК в ответ (то есть это не данные,
которые ещё как-то кем-то обработаны). Извините, если неправильно
вас понял. - Lem(05.05.2025 21:49)
- Это только вам самому под силу выяснить. Nikolay_Po(345 знак., 05.05.2025 22:03)
- Значения с АЦП я беру по таймеру и в том же таймере сразу заношу их
в массив can сообщения. Раньше в том же таймере сразу после
заполнения массива сообщения я это сообщение слал и с данными все
было нормально. Сейчас я также в таймере заполняю массив сообщения,
но высылаю в ответ на запрос из вне - Lem(06.05.2025 11:04)
- Есть вероятность, что CAN читает данные из памяти в тот момент,
когда они обновляются. Это может приводить к ошибкам, перемешиванию
старых и новых байт данных. - Nikolay_Po(06.05.2025 20:22)
- У меня была такая мысль. А что в таком случае можно сделать? - Lem(07.05.2025 03:55)
- Можно флаги DMA смотреть. Либо сделать проще: все равно ведь данные
с АЦП надо фильтровать. Я элементарно завожу массив по 9 значений
на каждый канал АЦП. DMA молотит себе, а когда мне нужно получить
текущее значение, я элементарной медианой (сниппет стырил из
"numerical receipies") вычисляю из этих девяти. В итоге даже если
одно-два будут в корне неверными, все равно получится ОК. - Eddy_Em(07.05.2025 08:52)
- К сожалению на этом контроллере нет DMA. Есть PEC, который по функционалу похож(в ответ на событие переносит данные из одной области в другу в обход ЦПУ), но настроить его для АЦП у меня не вышло. Я по сути это и делаю, правда без фильтрации - в таймере заводу значения в область данных моего объекта сообщения, а по запросу оно просто отсылается. Ну, если я вас правильно ул всем понял - Lem(07.05.2025 13:03)
- Ну я понимаю завести 9 значений НА каждый канал ЦАП, но что касается АЦП люди традиционной ориентации, обычно выводят С каждого канала АЦП. - Kpoк(07.05.2025 10:16)
- Можно флаги DMA смотреть. Либо сделать проще: все равно ведь данные
с АЦП надо фильтровать. Я элементарно завожу массив по 9 значений
на каждый канал АЦП. DMA молотит себе, а когда мне нужно получить
текущее значение, я элементарной медианой (сниппет стырил из
"numerical receipies") вычисляю из этих девяти. В итоге даже если
одно-два будут в корне неверными, все равно получится ОК. - Eddy_Em(07.05.2025 08:52)
- У меня была такая мысль. А что в таком случае можно сделать? - Lem(07.05.2025 03:55)
- есть подозрение что ты мил человек всех нас обманываешь ))) там
случаем RMS не считаешь ? - Aleksey_75(06.05.2025 12:42)
- RMS - это обороты в секунду? Вроде нет - Lem(06.05.2025 13:33)
- Это что за чудный датчик скорости что нужно задействовать ацп ???
)) - Aleksey_75(06.05.2025 12:33)
- Тахогенератор вроде - Lem(06.05.2025 13:35)
- Третий пример от Грока: Бoмж(3752 знак., 06.05.2025 11:42)
- Есть вероятность, что CAN читает данные из памяти в тот момент,
когда они обновляются. Это может приводить к ошибкам, перемешиванию
старых и новых байт данных. - Nikolay_Po(06.05.2025 20:22)
- Значения с АЦП я беру по таймеру и в том же таймере сразу заношу их
в массив can сообщения. Раньше в том же таймере сразу после
заполнения массива сообщения я это сообщение слал и с данными все
было нормально. Сейчас я также в таймере заполняю массив сообщения,
но высылаю в ответ на запрос из вне - Lem(06.05.2025 11:04)
- Это только вам самому под силу выяснить. Nikolay_Po(345 знак., 05.05.2025 22:03)
- Спасибо за ответ. Я правильно понял, что это скорее проблема для
стороны, которая посылает запрос? Просто я вижу выбросы именно что
в данных, которые посылает мой МК в ответ (то есть это не данные,
которые ещё как-то кем-то обработаны). Извините, если неправильно
вас понял. - Lem(05.05.2025 21:49)
- суть в том что у вас скорость идет в в цифрах can сообщения,
всплески могут быть если вы пытаетесь привести данные с сообщения к
таймстепу получения сообщения и на шине есть еще обмен, то это
тупик! арбитарж даст непредсказуемый тайминг - Aleksey_75(05.05.2025 18:11)
- Извините... Немного не понял вопроса. Частота запроса фиксирована,
но ее определяет внешняя сторона. В расчетах ее не использую.
Ускорение считаю как просто разность и смотрю на него потому что по
нему хорошо видно - Lem(05.05.2025 16:58)
- Может, у тебя датчик скорости сидит на том же питании, что и
трансивер кэн. И пульсации по питанию помехи дают? Nikolay_Po(355 знак., 05.05.2025 15:51)
- Что у вас датчик скорости? Он генерирует импульсы, которые вы
считаете? - Nikolay_Po(05.05.2025 18:46)
- Да, кстати, спасибо за ответы и что тратите своё время. Для меня, честно, этот МК почти в новинку, а очень многие примеры в инете написаны на ассемблере, поэтому тут так сложно... - Lem(05.05.2025 21:53)
- Выдаёт напряжение пропорциональное скорости, которое идёт на АЦП.
На каком принципе работает, честно, не знаю. - Lem(05.05.2025 21:43)
- Питается от чего датчик? У АЦП опорное напряжение достаточно стабильно? А то активность на шине может влиять на показания. Nikolay_Po(264 знак., 05.05.2025 21:59)
- Насчёт питания - вроде нет. К тому же до этого было реализовано, что c167 просто по таймеру слал наружу значения и в них никаких выбросов. А вот как стал по запросу делать, так проблемы. Насчёт задержки - пока не знаю. До этого реализовывал отправку по простому запросу и в обработчике прерываний can "вручную" делал send, при этом я делал свою функцию send вытесняющий (с помощью макроса #pragma disabled), то есть когда она срабатывала по идее любые другие прерывания не Lem(29 знак., 05.05.2025 16:55)
- Что у вас датчик скорости? Он генерирует импульсы, которые вы
считаете? - Nikolay_Po(05.05.2025 18:46)
- частоту запроса каким либо образом используете ? сan гарантирует
доставку, но не гарантирует время доставки - Aleksey_75(05.05.2025 16:04)