Y
Доброго времени суток!
Столкнулся с проблемой - не работает концевой выключатель Zmin на первой версии прошивки марлина. Ситуация заключается в том, что до выхода в ноль по всем осям, при движении по осям работают все концевики кроме Zmin (например, двигаю по оси X и нажимаю на концевики Xmin или Xmax - движение прекращается, двигаю по Z, нажимаю на Zmin - реакции ноль).
Хочу уточнить у пользователей вышеупомянутой версии, работает ли у них концевик Zmin и при каких условиях?
Последние умозаключения привели к тому, что в коде работа этого концевика учитывается, но работает некорректно. Во вложенном скрине показана часть кода функции update() модуля endstops.cpp, которая отвечает за срабатывание концевика (по прерыванию). Стрелкой указана строка кода (у меня это строка 565) с определением UPDATE_ENDSTOP, которое отвечает за вызов остановки двигателя, но по непонятным причинам остановки движения не происходит (хотя, в случае с другими концевиками, UPDATE_ENDSTOP вызывает остановку). В самом определении есть условие, при выполнении которого выполняется функция остановки двигателя stepper.endstop_triggered(), но видимо в моем случае это условие == фосл, следовательно двигатель не реагирует на концевик (определение UPDATE_ENDSTOP так же в скрине во вложении).
Надеюсь вопрос был понятен, если нет, готов ответить на наводящие вопросы. Буду рад любым предложениям по решению этой проблемы.
Заранее благодарю!
Столкнулся с проблемой - не работает концевой выключатель Zmin на первой версии прошивки марлина. Ситуация заключается в том, что до выхода в ноль по всем осям, при движении по осям работают все концевики кроме Zmin (например, двигаю по оси X и нажимаю на концевики Xmin или Xmax - движение прекращается, двигаю по Z, нажимаю на Zmin - реакции ноль).
Хочу уточнить у пользователей вышеупомянутой версии, работает ли у них концевик Zmin и при каких условиях?
Последние умозаключения привели к тому, что в коде работа этого концевика учитывается, но работает некорректно. Во вложенном скрине показана часть кода функции update() модуля endstops.cpp, которая отвечает за срабатывание концевика (по прерыванию). Стрелкой указана строка кода (у меня это строка 565) с определением UPDATE_ENDSTOP, которое отвечает за вызов остановки двигателя, но по непонятным причинам остановки движения не происходит (хотя, в случае с другими концевиками, UPDATE_ENDSTOP вызывает остановку). В самом определении есть условие, при выполнении которого выполняется функция остановки двигателя stepper.endstop_triggered(), но видимо в моем случае это условие == фосл, следовательно двигатель не реагирует на концевик (определение UPDATE_ENDSTOP так же в скрине во вложении).
Надеюсь вопрос был понятен, если нет, готов ответить на наводящие вопросы. Буду рад любым предложениям по решению этой проблемы.
Заранее благодарю!
Вложения
-
22.8 KB Просмотры: 4
-
14.7 KB Просмотры: 3