ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
1005254 Топик полностью
RxTx (17.05.2020 12:55 - 13:11, просмотров: 887) ответил fk0 на Приоритеты -- ещё один повод, почему блокирующихся функций в обработчиках быть не должно. С равноприоритетными прерываниями оно не так страшно. Про шаговый двигатель я вынес для себя на всю жизнь: не нужно его крутить по шагам. Нужно крутить фазу с фиксированным временным шагом. Достаточно коротким, чтоб на низких скоростях разницы не было, а на высоких автоматически получается пропуск микрошагов (иначе контроллер не успеет). И здесь важно, чтоб джиттер был
Шаговик это вообще у меня тотальная жопа реализации. Признаюсь. Ну лично я так считаю. Я пытался этот блок переписывать чтобы он был "простой и тупой" как микросхема, но каждый раз оказывалась какая-нибудь да херня. Объясню в чем дело. Аппаратура при условном "POWER ON' калибруется по концевику. (я гоню шаговик до концевика, который калиброочно расположен строго в определенном месте). После этого я возвращаюсь в исходный нуль. Я при работе никогда не могу потерять 

позицию шаговика. И не могу (не должен по идее) потерять скорость (ну скажем джиттер раз в секунду скипнуть шаг можно, но не более того), потому что по шаговику своё время отбивает лазер (я сканирую поверхность).

А это несколько иное, чем с шаговиками у других людей. А случиться может многое что - у него и скорость меняется, и направление (мгновенно), и концевики могут срабатывать. И сейчас еще и добавлен микростеппинг, да.


По идее я думаю что все мои "беды" реально можено преодолеть вообще чисто аппаратно, таймером. Но это не точно.

Что тут поставить приоритетом, толи коммункацию с лазером, толи коммуникацию с хостом, толи шаговик - х.з. ничего потерять нельзя.


> не нужно его крутить по шагам. Нужно крутить фазу с фиксированным временным шагом.

Ничего не понятно что ты имел в виду. У меня постоянно долбит таймер с фикс. временем. Но откуда-то сверху частоту таймера можно менять. Степ не должен потеряться.

"Фаза" - у меня халява, её держит внутри себя микруха, у которой три пина определяют состояние микростеппнга. Я управляю лишь DIR, STP, MSTM[3], POWER.

При этой простоте, низзя делать многие вещи как заблогорассудиться, как-то переключать как бог на душу положит микростеппинги, а также в любые моменты DIR, STP или увеличивать частоту таймера в произвольные моменты: когда ШД долго работает туда-сюда, туда-сюда, очень медленно может терять положение, так что пришлось всё это преодолевать. Но думаю тут ничего такого, много где такое требуется.

Спасибо, князь. Вы настоящий дворянин. И программист.