Технический форум по робототехнике.
Ruslan » 05 мар 2009, 00:32
Понял. Я просто в AVR-студио работаю, пойду CVAVR скачаю.
avr123.nm.ru » 05 мар 2009, 00:36
RiO писал(а): пойду CVAVR скачаю.
C этого начинать надо ! И еще ICC скачайте -
http://avr123.nm.ru/04.htm
Ruslan » 05 мар 2009, 01:03
ОК с прерыванием вроде разобрался. PCICR включает прерывания PCIE0-PCIE2 а те обрабатывают ножки согласно маскам в PCMSK. Теперь подскажите пожалуйста, насколько серьезной проблемой являются ложные срабатывания (дребезг) и есть ли простые решения в случае с одинарным энкодером.
=DeaD= » 05 мар 2009, 09:22
Простые решения пожалуй такие: 1. RC-цепь на выход датчика; 2. Замер времени между срабатываниями, если нереальное - отсекаем; Однако это не спасает от остановки в промежуточном положении.
Ruslan » 05 мар 2009, 17:23
Наверно это простой вопрос, но всё же, как сделать этот RC фильтр (с номиналами деталей)?
avr123.nm.ru » 05 мар 2009, 17:35
RiO писал(а): как сделать этот RC фильтр (с номиналами деталей)?
Вот так - "
Фильтрация сигналов ,
усиление и масштабирование сигналов " -
http://avr123.nm.ru/z09b.htm Ну и запомнить что: кОм * нФ получаются микроСекунды
Ruslan » 05 мар 2009, 19:08
avr123, Спасибо за быстрый ответ. Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно. А так приходится здесь задавать много вопросов. А под какую частоту собственно подбирать компоненты? У меня скорость диска энкодера будет переменная.
avr123.nm.ru » 05 мар 2009, 21:10
RiO писал(а): avr123, Спасибо за быстрый ответ. Если бы к Вашему курсу было удобное оглавление - совсем было бы замечательно.
А оно и есть на заглавной странице курса, а задачи озаглавлены и кратко описаны на стр. 6 Задачи курса.
Добавлено спустя 35 секунд: RiO писал(а): А так приходится здесь задавать много вопросов.
Форум как раз для вопросов.
Добавлено спустя 2 минуты 31 секунду: RiO писал(а): А под какую частоту собственно подбирать компоненты? У меня скорость диска энкодера будет переменная.
ОЧЕВИДНО под максимальную, если по произведению R*C то наверно на 0.15-0.2 от минимального периода.
А на низкой частоте можно програмные переменные паузы защиты сделать на прерываниях.
Но у меня и без извратов этих хорошо работало на актуаторе автомобильном от замков дверей с мышином энкодером.
almazkazan » 10 мар 2009, 19:14
avr123.nm.ru писал(а): =DeaD= писал(а): а прерывание по изменению входа обычное INT чем не устроило?
Дак через ж интересней ведь !
а если допустим ножки INT заняты, можно ли навесить прерывание на ножку которая НЕ INT, то есть на обычную PD2 например?
boez » 11 мар 2009, 00:57
У некоторых (обычно более современных) МК можно, у некоторых - нет. Это я про AVR. Конкретно смотреть в даташите. И читать ЭТУ тему - на первой странице про прерывания на произвольных ногах уже писали...
avr123.nm.ru » 11 мар 2009, 02:29
almazkazan писал(а): а если допустим ножки INT заняты, можно ли навесить прерывание на ножку которая НЕ INT, то есть на обычную PD2 например?
Вам нужно использовать ATmega48 -88 -168 или ATmega162
Duhas » 11 мар 2009, 06:19
можно в принципе на любой ноге, только тогда придется их постоянно сканировать...
avr123.nm.ru » 11 мар 2009, 13:30
А можно внешнюю логику прицепить 74hc00 hc02 для генерации 1 прерывани при любом изменении на выходе энкодеров, затем анализировать что на выходах. Пример есть в апноуте AN696 и он есть в примерах PROTEUS.
EdGull » 11 мар 2009, 15:59
с таким же успехом можно и диодами завести на прерывние
arisov77 » 01 апр 2009, 11:46
Вот здесь
http://electronix.ru/forum/index.php?s= ... t&p=565035 я выкладывал как делаю только с одним прерыванием настроенным на любое изменение уровня. Исходник - на асме, но он прост и под Си легко переписать.
Вложения
INT_Encoder.txt
(2.15 КиБ) Скачиваний: 239