РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

ФОРУМ НА ЭЛВО

РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ
  • БЛОГИ
  • НОВОЕ
  • СХЕМЫ
  • РАЗНОЕ
  • ТЕОРИЯ
  • ТЕЛЕВИДЕО
  • СВЕТОДИОД
  • МЕДТЕХНИКА
  • БЫТТЕХНИКА
  • ИЗМЕРИТЕЛИ
  • СПРАВОЧНИК
  • ТЕХНОЛОГИИ
  • РЕМОНТ СХЕМ
  • МОБИЛЬНИКИ
  • КОМПЬЮТЕРЫ
  • НАЧИНАЮЩИМ
  • ЗАРЯДКИ И АКБ
  • СИГНАЛИЗАЦИИ
  • АУДИОТЕХНИКА
  • АВТОВЕЛОМОТО
  • БЛОКИ ПИТАНИЯ
  • РАДИОПРИЁМНИКИ
  • МЕТАЛЛОИСКАТЕЛИ
  • МИКРОКОНТРОЛЛЕР
  • РАДИОПЕРЕДАТЧИКИ

  • Курс по ускорению работы Мозга на 100%


    • Страница 1 из 3
    • 1
    • 2
    • 3
    • »
    Архив - только для чтения
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Энкодер на AVR (Описание как написать программу для энкодера)
    Энкодер на AVR
    Вс, 13.01.2013, 01:44 | Сообщение # 1        
    frenele
    аватар
      Постов: 30   ОК 
    Хочу поделится опытом. Мой товарищ загорелся идеей освоить энкодер. Но столкнулся с рядом проблем. Обратившись ко мне за помощью я решил для него эту задачу. Потому и решил выложить код. Принцип основан на сбросе таймера T0 по прерыванию от INT0.Сброс таймера продолжается до тех пор пока не пройдёт дрябиск на контактах энкодера. С последним таким перепадом таймер считает до прерывания. В обработчике прерывания происходит проверка уровней на входах энкодера и по этому условию определяется в какую сторону поворачивается ручка. Обработчики прерывания запускаются когда есть воздействие на энкодер. В остальное время эти ресурсы микроконтроллера не задействованы.
    Файлы: 1872151.txt (1.8 Kb)
    Вс, 13.01.2013, 08:35 | Сообщение # 2        
    Электродыч
    аватар
      Постов: 3755   U 
    Практическую реализацию похожей схемы управления можно посмотреть в журнале Радио №9 за 2010год в статье ''УКВ радиоприемник на основе тюнера автомагнитолы''.
    Вс, 13.01.2013, 08:50 | Сообщение # 3        
    skateman
    аватар
      Постов: 2201   Друзья 
    Цитата (frenele)
    Принцип основан на сбросе таймера T0 по прерыванию от INT0

    не лучший вариант
    Вс, 13.01.2013, 21:00 | Сообщение # 4        
    frenele
    аватар
      Постов: 30   ОК 
    Цитата (skateman)
    не лучший вариант


    Есть пример лучше? Выложи я оценю.

    Добавлено (13.01.2013, 22:00)
    ---------------------------------------------
    Цитата (Электродыч)
    Практическую реализацию похожей схемы управления можно посмотреть в журнале Радио №9 за 2010год в статье ''УКВ радиоприемник на основе тюнера автомагнитолы''.


    Я конечно не знаю как там программа написана, но обратил внимание на конденсатор С1 подключенный к одному выводу энкодера. Мой пример позволяет не подключать дополнительных элементов. Только один энкодер. Работает как швейцарские часы.)))
    Пн, 14.01.2013, 07:19 | Сообщение # 5        
    skateman
    аватар
      Постов: 2201   Друзья 
    Цитата (frenele)
    Есть пример лучше? Выложи я оценю

    Я к тому, что если надо задействовать 3 и более энкодеров, то выводов внешних прерываний может просто не хватить, ведь AVR это, к примеру, не STM8 в которой на каждую ногу можно повесить внешнее прерывание.
    Пн, 14.01.2013, 20:54 | Сообщение # 6        
    frenele
    аватар
      Постов: 30   ОК 
    Цитата (skateman)
    Я к тому, что если надо задействовать 3 и более энкодеров


    Я согласен, но это один пример. Сдам сессию займусь этой задачей.
    Кстати на MSP430 тоже можно настроить на каждую ножку прерывание.
    Вт, 15.01.2013, 07:15 | Сообщение # 7        
    skateman
    аватар
      Постов: 2201   Друзья 
    лучше как кнопки опрашивать по прерыванию таймера, только чтоб пропусков не было при прокрутке надо частоту опроса экпериментально подобрать
    Ср, 16.01.2013, 00:11 | Сообщение # 8        
    frenele
    аватар
      Постов: 30   ОК 
    Цитата (skateman)
    лучше как кнопки опрашивать по прерыванию таймера, только чтоб пропусков не было при прокрутке надо частоту опроса экпериментально подобрать
    Дело в том, что предложенный вариант в самом начале этой темы подразумевает минимальное задействование ресурсов микроконтроллера. Эти ресурсы задействоваться будут только тогда, когда на энкодер оказывает воздействие пользователь. Постоянный опрос при простои энкодера или кнопок и других устройств ввода нерациональное растрачивание вычислительных ресурсов микроЭВМ.

    Добавлено (16.01.2013, 01:11)
    ---------------------------------------------
    воздействие на устройство ввода должно вызывать прерывание. Это принципиально! Можно конечно и программно опрашивать порт(ы), но если не требуется строгих  временных интервалов.

    Ср, 16.01.2013, 07:21 | Сообщение # 9        
    skateman
    аватар
      Постов: 2201   Друзья 
    Цитата (frenele)
    воздействие на устройство ввода должно вызывать прерывание
    а если кнопка залипнет?
    Ср, 16.01.2013, 18:21 | Сообщение # 10        
    frenele
    аватар
      Постов: 30   ОК 
    Цитата (skateman)
    а если кнопка залипнет?
    Если залипнет кнопка при использовании прерываний это ни чего страшного. Прерывания вызываться не будут. Дело в том прерывание происходит когда на пине(ножке) меняется состояние с "0" на "1" или наоборот. А если реализовать опрос программно то будут неприятности если просто проверять состояние на пине, а надо чтобы реакция было от фронта или спада на выводе микросхемы. Можно и программно реализовать функцию которая будет реагировать на изменение состояния на пине, но при этом чрезмерно сильно будут вычислительные затраты. Что не очень GOOD.
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Энкодер на AVR (Описание как написать программу для энкодера)
    • Страница 1 из 3
    • 1
    • 2
    • 3
    • »
    Поиск:

    Внимание! Форум переехал на Tehnodium.ru



    © 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA