считывание энкодеров через прерывание - нужен пример на Си

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: считывание энкодеров через прерывание - нужен пример на Си

Сообщение avr123.nm.ru » 01 апр 2009, 16:23

EdGull писал(а):с таким же успехом можно и диодами завести на прерывние

Расскажи как. А лучше покажи.

Добавлено спустя 30 минут 17 секунд:
arisov77 писал(а):Вот здесь http://electronix.ru/forum/index.php?s= ... t&p=565035 я выкладывал как делаю только с одним прерыванием настроенным на любое изменение уровня. Исходник - на асме.


Для тех кто не зареген на том форуме - выкладуваю исходник для квадратурного энкодера здесь.

Добавлено спустя 1 минуту 13 секунд:
А Апноуте Microcip AN696 тоже аппаратная обработка энкодеров на внешней логике.
Вложения
INT_Encoder.rar
(3 КиБ) Скачиваний: 50
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: считывание энкодеров через прерывание - нужен пример на Си

Сообщение arisov77 » 02 апр 2009, 00:14

Только в AN696 надо использовать два таймера, что не всегда удобно.
А прошивку, я выложил в предыдущем посту вместе со схемой.
Вспомнил, что сейчас у меня в сервоконтроллере http://www.cnczone.com/forums/showpost. ... stcount=28 ( http://www.cnczone.com/forums/showthrea ... post574303) этот "кусок" немного изменился - убрал лишний регистр r16.
Вот подкоректированая версия.
Вложения
INT_Encoder.txt
(4.73 КиБ) Скачиваний: 295
arisov77
 
Сообщения: 3
Зарегистрирован: 01 апр 2009, 11:38
Откуда: Ульяновск

Re: считывание энкодеров через прерывание - нужен пример на Си

Сообщение Vooon » 02 апр 2009, 00:42

Хм, у меня ощущение, что я уже видел эту схему в журнале «радио».
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: считывание энкодеров через прерывание - нужен пример на Си

Сообщение arisov77 » 02 апр 2009, 09:58

Я бы очень хотел посмотреть на аналогичную схему, я на нескольких форумах выкладывал свой вариант и просил показать аналогичное, т.к. считаю, что это решение очень простое и имеет несколько преимуществ перед подобными. И очень странно, что нигде это широко не распространено (такой схемы, честное слово, нигде не видел, сам догадался объединить стандартные решения, правда дошёл до этого экспериментальным путём).
Преимущества, на мой взгляд, заключаются в следующем - на входах для уменьшения дребезга триггеры Шмита (DD1.1 и DD1.2) с возможностью регулирования «ширины окна» и временем фильтрации шумов (RC-цепочками), сигнал прерывания возникает только во время «правильных» переходов (т.к. переходов с энкодера с 00 на 11, с 01 на 10 или наоборот не может быть, то за счёт применения элемента DD1.3 «Иск. ИЛИ» обеспечивается дополнительная защита от «ложных» переходов и повышается быстродействие, т.к. МК лишний раз «не отвлекается» и не надо в п/программе проводить это сравнение) и всё это реализуется на одном корпусе К561ЛП2, да ещё 1 элемент остаётся (в AN696 – используются 2 внешних ИМС). И как уже писал – надо только один вход прерывания, настроенного на любое изменение уровня.
Я раньше на некоторых форумах, «выкидывал» эту схемку для обсуждения возможных нюансов, т.к. не проверял её. А сейчас она у меня проверенна, этот узел «без проблем» работает у меня в пока экспериментальном варианте сервоконтроллера.
Если есть, что то похожее, то плз ссылочку.
arisov77
 
Сообщения: 3
Зарегистрирован: 01 апр 2009, 11:38
Откуда: Ульяновск

Re: считывание энкодеров через прерывание - нужен пример на Си

Сообщение Vooon » 02 апр 2009, 18:52

Попробую найти, на сколько помню там четверть страницы все занимало...
Но я уже с год не покупаю его, наверное 2007-ого года журнал был.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Пред.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11