Источники питания | "Импульсный блок питания на базе БП ПК" |
|
---|---|---|
DWD: Пока Link-а нету, скажу, что у меня подключен энкодер и он работает как положено. Вам повезло с производителем энкодера. Было дело я нарвался на дешёвый энкодер и он зараза начал мозги парить и мне пришлось проверять состояние второй кнопки для уменьшения ложных подрабатываний. GM: Алгоритм там самый простой, есть перепад 1-й кнопки - даём приращение на 1, есть перепад 2-й - вычитаем 1. Но энкодер работает не так: Вы правы. В этом алгоритме это именно так и работает. Причём занимает два прерывания в место одного, на нормальном энкодере можно сделать через одно прерывание с проверкой состояния портов, но к этому я пришёл позже, когда нарвался на дребезжащий энкодер, а тот алгоритм который у DWD был адаптирован с БП в котором стояли "хитрые" энкодеры у них был другой алгоритм работы, в тех энкодерах "дребезжала" только одна "кнопка", а вторая была постоянно нажата, при изменении направления вращения "дребезжащая кнопка" замыкалась, а замкнутая начинала выдавать импульсы. По этому более менее рабочий алгоритм я получил при тупом контроле фронта (или спада) нажатия кнопки по прерыванию. Сейчас в магазине те хитрые энкодеры закончились и мне попался нормальный но дешёвый, что заставило переписать алгоритм обработки энкодера в том устройстве куда я его поставил. |
|
|
DWD: Ну вот - как раз подходит. В энкодере, ведь, получается так, что направление зависит от того, какой импульс пришёл первым. То есть, какая кнопка была нажата первой. Это подходит для двух кнопок, кнопка "+" и кнопка "-". Какую кнопку нажал, то прерывание и обработается и 1 либо прибавится к результату, либо 1 вычтется. Теперь, что касается энкодера. Если мы крутнем энкодер на один щелчок, то добавится 1, но если крутнём энкодер на два щелчка, то после одного прерывания 1 добавится к результату, а после второго прерывания - вычтется - таким образом результат будет нулевым, а должен был бы увеличиться на два. Вот я не понимаю, как работает программа энкодера, и прошу Юру объяснить, а он пишет про какие-то хитрые энкодеры. Энкодеры везде одни и те же, даже в Африке. |
|
|
GM: Энкодеры везде одни и те же, даже в Африке. Я тоже так думал покуда не нарвался на то что нарвался. Касательно как работает программа - вероятней всего второе прерывание не обрабатывается когда сработало первое. Честно говоря я сам не понимаю как оно работает на самом деле на нормальном энкодере . |
|
|
Link: Я тоже так думал покуда не нарвался на то что нарвался. Хотелось бы посмотреть на тип такого "хитрого" энкодера, ну и неплохо бы снять и привести вид импульсов при вращении в одну сторону и в другую. |
|
|
GM: Хотелось бы посмотреть на тип такого "хитрого" энкодера, А на нём написано только место где он изготовлен, я сам хотел найти его тип, как то привык к ним и они достаточно надёжные и чёткие в работе, оно не удивительно т.к. изготовлены они в Японии. |
|
|
У энкодера есть точки фиксации. Между этими точками можно однозначно определить, какой контакт был замкнут первым. При вращении в одну сторону первым замыкается один контакт, а в другую сторону - второй. Переход из одной точки фиксации к другой очень короткий по времени. Получается, что если стоят кнопки, то при нажатии любой из них происходит блокировка другой на короткое время. А так как нажатая кнопка сама себя не блокирует, то происходит счёт только в одну сторону. С энкодером получается тоже самое, с той лишь разнцей, что в одном цикле (один щелчёк) последовательно будут нажаты обе кнопки. Но так как первая нажатая блокирует отработку второй, то вторая нажимается в холостую. Программа отработает точно так же, как и с кнопками. |
|
|
DWD, можете снять осциллом импульсы с двух каналов вашего энкодера? |
|
|
Двухлучевого осциллогарфа у меня нет. Вот картинка из даташита на энкодер: Просматривал даташиты на другие энкодеры - практически то же самое. Разница может быть только в разносе импульсов: в одних перепад импульса одной фазы происходит посередине импульса второй фазы, а у других - в первой четверти. GM: Вот меня и одолевают непонятки - как ваше устройство работает, неужто по дребезгу? Вот на счёт этого не скажу. В программе не разбираюсь. |
|
|
В программе никакой блокировки отстающей фазы нет. |
|
|
Не знаю. Я брал здесь. У него там, вроде бы энкодер по прерываниям обслужтвается. Может быть такое, что после срабатывания прерывания по одному входу, прерывание по второму временно блокируется? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |