Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Atmega32 и энкодер

Непрочитано 17.02.2011, 18:02  
Pevek80
Прописка
 
Аватар для Pevek80
 
Регистрация: 21.08.2010
Адрес: Таганрог
Сообщений: 108
Сказал спасибо: 19
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Pevek80 на пути к лучшему
По умолчанию Atmega32 и энкодер

Подключен такой энкодер, вернее только часть Jog от него к МК.

Подключено так:


Но если вращать энкодер в какую-либо сторону, в какой-то момент видно, что проскакивает шаг в другую сторону.




Вот код:
ISR(INT1_vect)
{
unsigned char tmp;
if (DialChange==0)
{

tmp=PINC;
_delay_us(30);
if ((tmp&0x80)==0x00)
{
dial++;
DialChange =1;
}
else
{
dial--;
DialChange =1;
}
}
}

Что можно сделать, чтоб не проскакивали шаги в обратную сторону?
Спасибо!
Реклама:
Pevek80 вне форума  
Непрочитано 17.02.2011, 18:54  
_guardianangel
Почётный гражданин KAZUS.RUN
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,138
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Попробуйте увеличить время задержки антидребезга. Возможно контроллер не успевает обработать поступающие сигналы. У меня такое было когда делал вывод на символьный дисплей с тупыми задержками и без ожидания флага готовности.
_guardianangel вне форума  
Непрочитано 17.02.2011, 19:06  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

подобную тему обсуждали на телесистемах - посмотри архивы или задай вопрос там. можно решить при помощи дополнительных внешних корпусов логики
jump вне форума  
Непрочитано 17.02.2011, 21:14  
Pevek80
Прописка
 
Аватар для Pevek80
 
Регистрация: 21.08.2010
Адрес: Таганрог
Сообщений: 108
Сказал спасибо: 19
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Pevek80 на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Сообщение от _guardianangel Посмотреть сообщение
Попробуйте увеличить время задержки антидребезга.
Пробовал, не решает проблему.
Сообщение от jump Посмотреть сообщение
можно решить при помощи дополнительных внешних корпусов логики
Не желательно такой вариант, ПП уже готова. Хотелось бы программно.
А тему на Телесистемах не могу найти. Может, кто поможет найти?
Pevek80 вне форума  
Непрочитано 17.02.2011, 22:18  
microsin
Временная регистрация
 
Аватар для microsin
 
Регистрация: 29.03.2005
Сообщений: 86
Сказал спасибо: 6
Сказали Спасибо 45 раз(а) в 21 сообщении(ях)
microsin на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Подключение поворотного энкодера к компьютеру через USB. По ссылкам в статье найдете код подпрограмм энкодера. Подпрограммы очень простые, и работают стабильно.
microsin вне форума  
Непрочитано 17.02.2011, 22:21  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

А есть чем посмотреть, что творится на линии J1(2), осцилл? Какова максимальная частота импульсов от энкодера, крутите быстро? Номинал R5, R7 (или C1,C4) пробовали увеличить?
Задержка, кстати, у Вас в обработчике , не к месту и даже наоборот, вредит. После задержки надо проверять состояние именно той линии, которая вызвала прерывание, и в зависимости от изменилось или нет состояние (дребезг или не дребезг) решать, обрабатывать или нет.
Да, еще у Вас в схеме j2 заведен на PD1 , j1 на PD3, а в коде проверяется вобще PC7 - кому верить? А с энкодера j1 на j2, j2 на j1 - капец, кто ж вас такому рас 3.14 здяйству учит!?

Последний раз редактировалось Nfc; 17.02.2011 в 22:30.
Nfc вне форума  
Сказали "Спасибо" Nfc
Pevek80 (17.02.2011)
Непрочитано 17.02.2011, 23:17  
Pevek80
Прописка
 
Аватар для Pevek80
 
Регистрация: 21.08.2010
Адрес: Таганрог
Сообщений: 108
Сказал спасибо: 19
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Pevek80 на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Сообщение от Nfc Посмотреть сообщение
еще у Вас в схеме j2 заведен на PD1 , j1 на PD3, а в коде проверяется вобще PC7 - кому верить? А с энкодера j1 на j2, j2 на j1 - капец, кто ж вас такому рас 3.14 здяйству учит!?
Да, это на схеме опечатки, на плате так


Сообщение от Nfc Посмотреть сообщение
Номинал R5, R7 (или C1,C4) пробовали увеличить?
Попробую!
Pevek80 вне форума  
Непрочитано 18.02.2011, 11:08  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Насчет задержки в коде - поробуйте так:

...
tmp=PIND;
_delay_us(30); //чтобы прикинуть какое время задержки применить, должна быть известна максимальная частота импульсов от энкодера. Иначе - методом подбора.
if (tmp&0x08&PIND) //определяем, дребезг или нет (ориентируюсь на то, что прерывание настроено по нарастающему фронту).
{
if (PINC&0x80) ... //тут Ваш код обработки направлений и т.д.
Nfc вне форума  
Сказали "Спасибо" Nfc
Pevek80 (19.02.2011)
Непрочитано 18.02.2011, 12:16  
terminator_seva
Вид на жительство
 
Аватар для terminator_seva
 
Регистрация: 03.06.2010
Сообщений: 451
Сказал спасибо: 35
Сказали Спасибо 168 раз(а) в 133 сообщении(ях)
terminator_seva на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

https://kazus.run/forums/showpost.ph...8&postcount=21
terminator_seva вне форума  
Непрочитано 18.02.2011, 12:24  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Atmega32 и энкодер

Вообще-то, если энкодер замыкает на землю, то ничего не надо увеличивать, кроме задержки. Раз в 1000.
omercury вне форума  
Сказали "Спасибо" omercury
Pevek80 (19.02.2011)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите настроить АЦП в Atmega32 sergx1300 Микроконтроллеры, АЦП, память и т.д 72 09.11.2010 00:28
Atmega32 и LCD DEJL1985 Делимся опытом 8 20.06.2010 14:35
АЦП 12-bit + ATMega32 моделирование в Proteus Flash_vrn Proteus 4 22.05.2010 05:20


Часовой пояс GMT +4, время: 02:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.