Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Совсем ламерский вопрос
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
inventor
На работе посадили программировать Атмегу128, я ни с ней ни с
какими другими подобными контроллерами дел не имел.
Так что опыт у меня в этом всего 2 недели.
Я имел дело только с процами Техаса, 32016 и 32054 ,
ну совсем немного Аналога ну и 51-м очень давно.
Вобщем проблема такая.
Шатл, или как он называется-оптический энкодер .
Подключен к ногам Атмеги128 порты DE6 и DE7.
Эти же порты являются входами таймера TIMER3.
Как я понимаю, нужно считать импульсы, приходящиен от шаттла.
Нигде не нашел примера, как программировать этот счетчик, чтоб он считал импульсы.
И еще не понятно, как определять направление вращения этого шаттла,
там нет других выводов кроме двух A и B.
C остальной периферией типа USART и Таймеров разобрался.
Ну еще будут некоторые вопросы.
Но вот этот сейчас главный.
Буду очень признателен за примеры, если такие у кого нибудь будут.
DRUID3
Цитата(inventor @ Dec 25 2008, 20:00) *
Вобщем проблема такая.
Шатл, или как он называется-оптический энкодер .
Подключен к ногам Атмеги128 порты DE6 и DE7.
Эти же порты являются входами таймера TIMER3.
Как я понимаю, нужно считать импульсы, приходящиен от шаттла.
Нигде не нашел примера, как программировать этот счетчик, чтоб он считал импульсы.

Не знаю, что это там у Вас за порты такие в Меге 128, но нужно в прерывании по изменению уровня наращивать счетчик любой(программный, аппаратный). Можно конечно и не так - если все внешние линии прерывания заняты, то можно программно прерывать или периодически сканировать - но это больше ресурсов сожрет.
Цитата(inventor @ Dec 25 2008, 20:00) *
И еще не понятно, как определять направление вращения этого шаттла,
там нет других выводов кроме двух A и B.

По разности фаз...
evgeny_ch
Цитата(inventor @ Dec 25 2008, 22:00) *
...
Буду очень признателен за примеры, если такие у кого нибудь будут.

Поиск по словам энкодер оптический, магнитный, индуктивный.
inventor
Цитата(DRUID3 @ Dec 25 2008, 21:12) *
Не знаю, что это там у Вас за порты такие в Меге 128, но нужно в прерывании по изменению уровня наращивать счетчик любой(программный, аппаратный). Можно конечно и не так - если все внешние линии прерывания заняты, то можно программно прерывать или периодически сканировать - но это больше ресурсов сожрет.

По разности фаз...


Неправильно написал, порты естественно PE.
Единственное, не нашел примеров программирования счетчика на вход.
Буду искать.
rezident
Цитата(inventor @ Dec 26 2008, 19:49) *
Единственное, не нашел примеров программирования счетчика на вход.
Аппаратный реверсивный счетчик на любом из таймеров ATMega128 вы не сделаете. Вы лишь можете использовать таймер в режиме захвата (capture) и/или использовать входы захвата как источники прерываний при событиях смены состояний уровней на этих входах. Реверсивный счетчик для вычисления положения энкодера вам придется делать программно.
inventor
Цитата(rezident @ Dec 26 2008, 17:58) *
Аппаратный реверсивный счетчик на любом из таймеров ATMega128 вы не сделаете. Вы лишь можете использовать таймер в режиме захвата (capture) и/или использовать входы захвата как источники прерываний при событиях смены состояний уровней на этих входах. Реверсивный счетчик для вычисления положения энкодера вам придется делать программно.


Мне и нужен такой счетчик.
У меня есть даташит и книжка по атмелам.
Я все варианты там описанные попробовал.
Все работает,
но вот такой счетчик работающий по захвату
нигде не могу найти.
Описаны только выводы.
А принципа работы нет.
rezident
Цитата(inventor @ Dec 26 2008, 22:54) *
А принципа работы нет.
Принцип работы описал DRUID3 еще в сообщении #2. Используйте пины МК к которым подключен энкодер как входы внешних прерываний (INT6 и INT7). Об использовании их см. раздел External Interruprs в datasheet ATMega128.
Прохожий
Цитата(inventor @ Dec 26 2008, 20:54) *
Описаны только выводы.
А принципа работы нет.

А почему бы не взять вместо Meg-и, что-нибудь более подходящее. dsPIC33FJ12MC201/202, например? Там обработчик сигналов инкрементального энкодера аппаратный, со встроенным аппаратным же фильтром. Ничего программно делать не надо. Да и документация весьма доходчива.
rezident
Цитата(Прохожий @ Dec 27 2008, 00:54) *
А почему бы не взять вместо Meg-и, что-нибудь более подходящее. dsPIC33FJ12MC201/202, например?

Видимо потому, что
Цитата(inventor)
На работе посадили программировать Атмегу128
Прохожий
Цитата(rezident @ Dec 26 2008, 23:16) *
Видимо потому, что

Если бы кто-то из нас просто и "тупо" выполнял порученное дело, его давно бы выгнали. Да и самому как-то неинтересно тратить время на то, что уже давно переварено. Простите за bb-offtopic.gif
rezident
Цитата(Прохожий @ Dec 27 2008, 02:01) *
Если бы кто-то из нас просто и "тупо" выполнял порученное дело, его давно бы выгнали.
А если бы каждый исполнитель вносил свои собственные несогласованные изменения в кем-то придуманный план, но план бы никогда не был реализован smile.gif
Прохожий
Цитата(rezident @ Dec 27 2008, 00:24) *
А если бы каждый исполнитель вносил свои собственные несогласованные изменения в кем-то придуманный план, но план бы никогда не был реализован smile.gif

Поэтому лучше, когда "золотая середина". Доложил свое мнение, а дальше делаешь, что сказало руководство. Ему виднее. Но доложить-то надо...
inventor
Цитата(Прохожий @ Dec 27 2008, 00:50) *
Поэтому лучше, когда "золотая середина". Доложил свое мнение, а дальше делаешь, что сказало руководство. Ему виднее. Но доложить-то надо...


Ну, если бы мне дали возможность спроектировать эту плату,
то я бы не использовал Мегу, так как там и алгоритмы для такого кристала
сложноваты, да еще и памать дополнительная на борту.
Что по моему мнению уже косяк.
Сделал бы на каком-нибудь Тэмээсе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.