roboforum.ru

Технический форум по робототехнике.

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

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

Ruslan » 05 мар 2009, 00:32

Понял. Я просто в AVR-студио работаю, пойду CVAVR скачаю.

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

avr123.nm.ru » 05 мар 2009, 00:36

RiO писал(а):пойду CVAVR скачаю.

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

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

Ruslan » 05 мар 2009, 01:03

ОК с прерыванием вроде разобрался. PCICR включает прерывания PCIE0-PCIE2 а те обрабатывают ножки согласно маскам в PCMSK.

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

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

=DeaD= » 05 мар 2009, 09:22

Простые решения пожалуй такие:
1. RC-цепь на выход датчика;
2. Замер времени между срабатываниями, если нереальное - отсекаем;

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

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

Ruslan » 05 мар 2009, 17:23

Наверно это простой вопрос, но всё же, как сделать этот RC фильтр (с номиналами деталей)?

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

avr123.nm.ru » 05 мар 2009, 17:35

RiO писал(а):как сделать этот RC фильтр (с номиналами деталей)?

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

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

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

Ruslan » 05 мар 2009, 19:08

avr123, Спасибо за быстрый ответ.
Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно. А так приходится здесь задавать много вопросов.

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

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

avr123.nm.ru » 05 мар 2009, 21:10

RiO писал(а):avr123, Спасибо за быстрый ответ.
Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно.

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

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

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

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

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

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

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

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

almazkazan » 10 мар 2009, 19:14

avr123.nm.ru писал(а):
=DeaD= писал(а):а прерывание по изменению входа обычное INT чем не устроило?
Дак через ж интересней ведь !


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

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

boez » 11 мар 2009, 00:57

У некоторых (обычно более современных) МК можно, у некоторых - нет. Это я про AVR. Конкретно смотреть в даташите. И читать ЭТУ тему - на первой странице про прерывания на произвольных ногах уже писали...

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

avr123.nm.ru » 11 мар 2009, 02:29

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


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

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

Duhas » 11 мар 2009, 06:19

можно в принципе на любой ноге, только тогда придется их постоянно сканировать...

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

avr123.nm.ru » 11 мар 2009, 13:30

А можно внешнюю логику прицепить 74hc00 hc02 для генерации 1 прерывани при любом изменении на выходе энкодеров, затем анализировать что на выходах.

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

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

EdGull » 11 мар 2009, 15:59

с таким же успехом можно и диодами завести на прерывние

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

arisov77 » 01 апр 2009, 11:46

Вот здесь http://electronix.ru/forum/index.php?s= ... t&p=565035 я выкладывал как делаю только с одним прерыванием настроенным на любое изменение уровня. Исходник - на асме, но он прост и под Си легко переписать.
Вложения
INT_Encoder.txt
(2.15 КиБ) Скачиваний: 239
Encoder.GIF


Rambler\'s Top100 Mail.ru counter