-
- суть в том что у вас скорость идет в в цифрах 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)