Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите решить проблему с энкодером
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб авг 09, 2025 14:55:40

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите решить проблему с энкодером
СообщениеДобавлено: Пт июл 19, 2013 11:35:41 
Родился

Зарегистрирован: Пт июл 19, 2013 10:46:38
Сообщений: 5
Рейтинг сообщения: 0
Здраствуйте Уважаемые форумчане!

Возникла проблема с работой энкодера на Pic16f628a.
Счетчик на 99 мин. 59 сек.
Программу написал. В Протеусе проверил. На макете работает.

Суть такова: Меняется скорость работы энкодера. При начальной настройке счетчика вращать энкодер нужно довольно медленно. После запуска и остановки таймера, когда значения еще остались, вращать можно с любой скоростью.

С железом проблем нет, пробовал других деталях - все точно так же.

Может где какой ляп или косяк в программе. Два дня ломал голову - не вижу причины.

Заранее благодарен!


Вложения:
test2.PDF [26.47 KiB]
Скачиваний: 213
test_2.c [9.11 KiB]
Скачиваний: 384
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Сб июл 20, 2013 08:49:52 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
Процедура обработки декодера хорошо сделана Ридико Л И и, по-моему , она де факто является стандартом (очень многие пользуются), так что выдумывать велосипед...
На этом сайте есть.
Замечания к коду.
1 Никогда не ставьте задержку в прерываниях. Ну вообще никогда.
2 При обработке прерывания от портов 4-7 мало сбросить флаг, нужно прочитать или записать порт, чтобы зафиксировать изменение - там же, в прерывании
3 Для выставления 99 минут необходимо 99*60 = 5940 щелчков энкодера, берем 20 щелчков энкодера на оборот, итого провернуть энкодер 297 раз.
Немного напряжно для пользователя, не находите ? На энкодере есть кнопка, вот при нажатии на нее сделайте приращение- уменьшение не на 1, а на 50,например.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Сб июл 20, 2013 10:20:34 
Родился

Зарегистрирован: Пт июл 19, 2013 10:46:38
Сообщений: 5
Рейтинг сообщения: 0
Спасибо большое за ответ!
Задержку в прерывании поставил временно. Без нее очень плохо и не удобно работает, пока. Исправлю ошибку уберу конечно.

Энкодер у меня с фиксацией положений 12 щелчков за оборот, с кнопкой, на 24 пока не нашел.
Больше 15 минут таймер ставить может ни когда не буду. А код на 99 мин написан с запасом на будущие разработки.

Минуты и секунды выставляются отдельно, выбор производится кнопкой самого энкодера. Так что даже довольно удобно.

Процедуру Ридико посмотрю обязательно.
Я сейчас уехал от железа, остался только компьютер. В воскресенье вечером буду пробовать.

Поясните, пожалуйста, как же прочитать порт или записать, чтобы зафиксировать изменение, желательно с примером.

Заранее благодарен.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Сб июл 20, 2013 11:10:17 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
http://www.microchip.com/stellent/idcpl ... e=en011050
перед сбросом флага читается порт.
Далее, для отбивки секунды используйте неостанавливаемый таймер (те в прерывании по переполнению не трогайте регистры таймера) с методом Брезенхема - будет поточнее
пример здесь
http://www.microchip.ru/phorum/read.php ... eply_39000


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Сб июл 20, 2013 15:16:04 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 3
Немного помучил ваш код. Куда-то исчез постоянный клиент и просто есть время.


Вложения:
kot_enc.zip [110.34 KiB]
Скачиваний: 195
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Сб июл 20, 2013 17:06:57 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23959
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
urry писал(а):
На энкодере есть кнопка, вот при нажатии на нее сделайте приращение- уменьшение не на 1, а на 50,например.

Не юзабельно... :(
Юзабельно сделать дискрет функцией угловой скорости. Быстро крутишь - меняется на минуты, медленно на десятки секунд. Совсем медленно - единицы секунд...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Вс июл 21, 2013 08:41:26 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
возможно, нужно попробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Чт июл 25, 2013 21:45:45 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23959
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Юрий, это не я придумал.
:)
Это фича от Matsushita Electric.
У меня СВЧ печка Panasonic именно так и регулирует время.
Исключительно удобно...

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите решить проблему с энкодером
СообщениеДобавлено: Чт июл 25, 2013 21:51:56 
Родился

Зарегистрирован: Пт июл 19, 2013 10:46:38
Сообщений: 5
Рейтинг сообщения: 0
Огромное спасибо!
Вы мне очень помогли. Я многому у Вас научился!
Разобрал код по косточкам. Кое что переделаю по себя, для удобства, и выложу все полностью.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: fil721 и гости: 7


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y