Jitter есть неотъемлемая часть любого процесса управления, в котором есть ассинхронные задачи/компоненты или код с варьируемым временем выполнения.
Т.к. Поцессор 1 а задач несколько и они не синхронизованы, загрузка процессора напоминает сильно неровную дорогу. И не важно, что это за задачи.
Мы можем играть приоритетами задач - однако даже имея самую приритетную задачу, даже с аппаратным шедулером (т.е. прерывание) оно, прерывание, не может быть вызвано немедленно, всегда есть задержка, нестабильная и описанная производителем процессора, в единицы тактов.
Чем больше задачи-нем нестабильнее работа.
Есть способы бороться с jitter-ом. Например цикл PRU идеален. Jitter на уровне нестабильности срабатывания оптопар и флуктуаций частоты кварца. Но в PRU 1 задача, никаких прерываний, ветвлений и пр. Уже архивчик не создашь, модули не опросишь.
В М02 помимо естественного ускорения за счёт более мощного процессор основной упор был сделан на стабильность цикла управления. Для чего применена ОС реального времени. Сейчас jitter на пустой программе (без логина,логин всегда сильно влияет на jitter) не превышает 20% от времени цикла.
Ну а желающим ехать на шахид-такси, т.к. на поезд опоздал - остаётся только посочувствовать.





Ответить с цитированием