,
в моем варианте есть энкодер типа PEC-16 который выдает импульсы сдвинутые по фазе на 45 градусов , насколько я понял его ногу данных нужно вешать на ногу проца INT0 или другую , от которой можно брать прерывание внешнее . Далее пишем подпрограмму обслуживания энкодера и т д .
ЗЫ . Если у кого то есть готовая прога на энкодер , буду рад увидеть ее .
К сожалению не знаком с сим устройством , но то , что о нём почитал в инете напрягло - особенно дребезг на выходе.
С этой проблемкой всегда сложновато бороться. Чаще всего применяется медот задержки , где апприорно считается , что если появился перепад на входе МК , то за сим последует инфа. Инициируется внутренний счётчик на задержку ( подбирается империческим путём) и по переполнению или обнулению - снимается инфа со входа.
Так вот возникла идейка использовать UART. Это устройство обладает встроенной помехозащищённостью . И если необходимо определить , есть ли инфа на входе или это просто помеха и он больше ничем не занят в программе - то похоже его использование самое милое дело.
Его протокол достаточно прост START BIT - DATA - STOP BIT и всё это подкрепленно внутренней сихронизацией ( приём ) -один из режимов его работы) .
Определение помеха или данные в протоколе идёт по мажорной схеме - STOP BIT - перепад из 1 - 0 - активация пачки импульсов (для примера и понимания 3) - если 2 из 3 обнаружили на входе 0 - это START BIT и дальше принимается всё , что идёт за ним до STOP BITa, но тебе он не нужен. Как впрочем и данные.
Можно использовать таким образом - в состоянии покоя - на входе UART должна висеть 1 - нужный тебе импульс UART воспримет как START BIT ( даже в условиях помехи) - длительность нужных импульсов ты приблизительно представляешь - и высчитать настройку UART будет не сложно- режим асинхронный - приём 5 данных ( меньше не даёт ) - по флагу приёма делаей чего хочешь.
Что-то темку не найду. pavel-pervomaysk, немного не так. Энкодеры бывают инкрементные и декрементные. С фиксацией состояния и без. Для нас больше подходят те, которые щелкают (с фиксацией). Изменение состояния происходит между фиксированными положениями. Соответственно мы имеем некий код на выводах энкодера. Подключим общий вывод на землю а информационные через резистор к питанию. Можем описать теперь все состояния энкодера в таблицу.
Для подавления дребезга Kenwood, например, применяет небольшую емкость. Я тоже паяю керамику прям на выводы. Нормально. Пример подпрограмки, взятой с нета. Это для меги и без использования прерываний. Без програмной задержки.
LDZ, В принципи цитата ILYAUL, это и есть вся темка , исходник твой написан на С , а я его нэ понимаю , мне бы асм кто-то подкинул , сегодня подниму документы или лог сниму с энкодера , чтоб уже точно знать на сколько градусов смещение .
Насчет керамики , то очень хорошо 100 нФ помагает .
Вот такой у тебя?
http://www.platan.ru/cgi-bin/qwery.pl/id=831232642&group=32405& ...
Он, похоже, без фиксации? Я встречал энкодеры без фиксации - трещетка была реализована ручка-корпус.
К сожалению ассемблер изучал давно и для PICa. Я попробую из готовых проектов вытянуть искомый кусок.