Ну,во-первых,даташиты читать лучше именно на английском. Переводчики тоже люди и могут маааааалость ошибиться,не там запятую поставить,а ты потом месяц голову ломай почему железяка не работает.
Во-вторых,аппаратные прерывания,конечно,хороши для точных таймингов,но джиттер будет всегда присутствовать. Если максимально упростить,то одно прерывание вроде 12 тактов занимает,умножаем на 12 прерываний получаем 144 такта.
Если все прерывания совпадут,то последнее выполнится с опозданием в 9 мкс при 16 МГц. Это много или мало? Не понятны требования к точности.
300 раз в секунду прерывание датчика скорости,всего 6...итого 1800 раз,на каждый 12 тактов и в сумме имеем 21600 тактов только на вход-выход из прерывания. Вроде немного. Но неясно что именно будет внутри прерываний происходить,и какой джиттер допускается. Да ещё и интерфейсы работают,ещё плюс 1-2 прерывания.
Сложно гадать на кофейной гуще,очевидно лишь что МК "на грани",тут и серъезно продумывать алгоритм с кодом и Microchip Studio в помощь. В котором я лично и анализирую время выполнения разных кусков кода при отладке.
Посудите сами,серъезные механизмы,как станки с ЧПУ имеют автономные блоки,содержащие двигатель,микроконтроллер и шины связи. 1 двигатель=1 микроконтроллер. Там положение,скорость,ускорение и момент высчитываются МК помощней 8ми битника,и то не без труда.
И да,моторчики же не телепатией управляются? Это тоже ресурсы МК требует.
Тут либо требования к точности занижать,либо какой-нибудь Cortex H7 применять,либо вообще ПЛИС.
Пы.сы. если очень надо,завтра вечером могу про прерывания на русском отсканить.
Во-вторых,аппаратные прерывания,конечно,хороши для точных таймингов,но джиттер будет всегда присутствовать. Если максимально упростить,то одно прерывание вроде 12 тактов занимает,умножаем на 12 прерываний получаем 144 такта.
Если все прерывания совпадут,то последнее выполнится с опозданием в 9 мкс при 16 МГц. Это много или мало? Не понятны требования к точности.
300 раз в секунду прерывание датчика скорости,всего 6...итого 1800 раз,на каждый 12 тактов и в сумме имеем 21600 тактов только на вход-выход из прерывания. Вроде немного. Но неясно что именно будет внутри прерываний происходить,и какой джиттер допускается. Да ещё и интерфейсы работают,ещё плюс 1-2 прерывания.
Сложно гадать на кофейной гуще,очевидно лишь что МК "на грани",тут и серъезно продумывать алгоритм с кодом и Microchip Studio в помощь. В котором я лично и анализирую время выполнения разных кусков кода при отладке.
Посудите сами,серъезные механизмы,как станки с ЧПУ имеют автономные блоки,содержащие двигатель,микроконтроллер и шины связи. 1 двигатель=1 микроконтроллер. Там положение,скорость,ускорение и момент высчитываются МК помощней 8ми битника,и то не без труда.
И да,моторчики же не телепатией управляются? Это тоже ресурсы МК требует.
Тут либо требования к точности занижать,либо какой-нибудь Cortex H7 применять,либо вообще ПЛИС.
Пы.сы. если очень надо,завтра вечером могу про прерывания на русском отсканить.
Изменено: