roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 06:45

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




Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 00:32 
Не в сети
Аватара пользователя

Зарегистрирован: 03 июн 2007, 22:32
Сообщения: 603
Откуда: Москва
ФИО: Руслан
Понял. Я просто в AVR-студио работаю, пойду CVAVR скачаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 00:36 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
RiO писал(а):
пойду CVAVR скачаю.

C этого начинать надо ! И еще ICC скачайте - http://avr123.nm.ru/04.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 01:03 
Не в сети
Аватара пользователя

Зарегистрирован: 03 июн 2007, 22:32
Сообщения: 603
Откуда: Москва
ФИО: Руслан
ОК с прерыванием вроде разобрался. PCICR включает прерывания PCIE0-PCIE2 а те обрабатывают ножки согласно маскам в PCMSK.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 09:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Простые решения пожалуй такие:
1. RC-цепь на выход датчика;
2. Замер времени между срабатываниями, если нереальное - отсекаем;

Однако это не спасает от остановки в промежуточном положении.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 17:23 
Не в сети
Аватара пользователя

Зарегистрирован: 03 июн 2007, 22:32
Сообщения: 603
Откуда: Москва
ФИО: Руслан
Наверно это простой вопрос, но всё же, как сделать этот RC фильтр (с номиналами деталей)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 17:35 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
RiO писал(а):
как сделать этот RC фильтр (с номиналами деталей)?

Вот так - "Фильтрация сигналов, усиление и масштабирование сигналов" - http://avr123.nm.ru/z09b.htm

Ну и запомнить что: кОм * нФ получаются микроСекунды


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 19:08 
Не в сети
Аватара пользователя

Зарегистрирован: 03 июн 2007, 22:32
Сообщения: 603
Откуда: Москва
ФИО: Руслан
avr123, Спасибо за быстрый ответ.
Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно. А так приходится здесь задавать много вопросов.

А под какую частоту собственно подбирать компоненты? У меня скорость диска энкодера будет переменная.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 05 мар 2009, 21:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
RiO писал(а):
avr123, Спасибо за быстрый ответ.
Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно.

А оно и есть на заглавной странице курса, а задачи озаглавлены и кратко описаны на стр. 6 Задачи курса.

Добавлено спустя 35 секунд:
RiO писал(а):
А так приходится здесь задавать много вопросов.

Форум как раз для вопросов.

Добавлено спустя 2 минуты 31 секунду:
RiO писал(а):
А под какую частоту собственно подбирать компоненты? У меня скорость диска энкодера будет переменная.

ОЧЕВИДНО под максимальную, если по произведению R*C то наверно на 0.15-0.2 от минимального периода.

А на низкой частоте можно програмные переменные паузы защиты сделать на прерываниях.

Но у меня и без извратов этих хорошо работало на актуаторе автомобильном от замков дверей с мышином энкодером.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 10 мар 2009, 19:14 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2008, 17:47
Сообщения: 97
Откуда: казань, респ. Татарстан, россия
прог. языки: c++, c#, asm
avr123.nm.ru писал(а):
=DeaD= писал(а):
а прерывание по изменению входа обычное INT чем не устроило?
Дак через ж интересней ведь !


а если допустим ножки INT заняты, можно ли навесить прерывание на ножку которая НЕ INT, то есть на обычную PD2 например?

_________________
“Но мы же еще ​живы, чувак, это же круто…”


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 11 мар 2009, 00:57 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
У некоторых (обычно более современных) МК можно, у некоторых - нет. Это я про AVR. Конкретно смотреть в даташите. И читать ЭТУ тему - на первой странице про прерывания на произвольных ногах уже писали...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 11 мар 2009, 02:29 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
almazkazan писал(а):
а если допустим ножки INT заняты, можно ли навесить прерывание на ножку которая НЕ INT, то есть на обычную PD2 например?


Вам нужно использовать ATmega48 -88 -168 или ATmega162


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 11 мар 2009, 06:19 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
можно в принципе на любой ноге, только тогда придется их постоянно сканировать...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 11 мар 2009, 13:30 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
А можно внешнюю логику прицепить 74hc00 hc02 для генерации 1 прерывани при любом изменении на выходе энкодеров, затем анализировать что на выходах.

Пример есть в апноуте AN696 и он есть в примерах PROTEUS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 11 мар 2009, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
с таким же успехом можно и диодами завести на прерывние


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: считывание энкодеров через прерывание - нужен пример на Си
СообщениеДобавлено: 01 апр 2009, 11:46 
Не в сети

Зарегистрирован: 01 апр 2009, 11:38
Сообщения: 3
Откуда: Ульяновск
Вот здесь http://electronix.ru/forum/index.php?s= ... t&p=565035 я выкладывал как делаю только с одним прерыванием настроенным на любое изменение уровня. Исходник - на асме, но он прост и под Си легко переписать.


Вложения:
INT_Encoder.txt [2.15 КиБ]
Скачиваний: 239
Encoder.GIF
Encoder.GIF [ 19.46 КиБ | Просмотров: 2234 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO