|
|
  |
Совсем ламерский вопрос, Как программировать шаттл |
|
|
|
Dec 25 2008, 18:00
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
На работе посадили программировать Атмегу128, я ни с ней ни с какими другими подобными контроллерами дел не имел. Так что опыт у меня в этом всего 2 недели. Я имел дело только с процами Техаса, 32016 и 32054 , ну совсем немного Аналога ну и 51-м очень давно. Вобщем проблема такая. Шатл, или как он называется-оптический энкодер . Подключен к ногам Атмеги128 порты DE6 и DE7. Эти же порты являются входами таймера TIMER3. Как я понимаю, нужно считать импульсы, приходящиен от шаттла. Нигде не нашел примера, как программировать этот счетчик, чтоб он считал импульсы. И еще не понятно, как определять направление вращения этого шаттла, там нет других выводов кроме двух A и B. C остальной периферией типа USART и Таймеров разобрался. Ну еще будут некоторые вопросы. Но вот этот сейчас главный. Буду очень признателен за примеры, если такие у кого нибудь будут.
|
|
|
|
|
Dec 25 2008, 18:12
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(inventor @ Dec 25 2008, 20:00)  Вобщем проблема такая. Шатл, или как он называется-оптический энкодер . Подключен к ногам Атмеги128 порты DE6 и DE7. Эти же порты являются входами таймера TIMER3. Как я понимаю, нужно считать импульсы, приходящиен от шаттла. Нигде не нашел примера, как программировать этот счетчик, чтоб он считал импульсы. Не знаю, что это там у Вас за порты такие в Меге 128, но нужно в прерывании по изменению уровня наращивать счетчик любой(программный, аппаратный). Можно конечно и не так - если все внешние линии прерывания заняты, то можно программно прерывать или периодически сканировать - но это больше ресурсов сожрет. Цитата(inventor @ Dec 25 2008, 20:00)  И еще не понятно, как определять направление вращения этого шаттла, там нет других выводов кроме двух A и B. По разности фаз...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Dec 26 2008, 14:49
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(DRUID3 @ Dec 25 2008, 21:12)  Не знаю, что это там у Вас за порты такие в Меге 128, но нужно в прерывании по изменению уровня наращивать счетчик любой(программный, аппаратный). Можно конечно и не так - если все внешние линии прерывания заняты, то можно программно прерывать или периодически сканировать - но это больше ресурсов сожрет. По разности фаз...Неправильно написал, порты естественно PE. Единственное, не нашел примеров программирования счетчика на вход. Буду искать.
|
|
|
|
|
Dec 26 2008, 17:54
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(rezident @ Dec 26 2008, 17:58)  Аппаратный реверсивный счетчик на любом из таймеров ATMega128 вы не сделаете. Вы лишь можете использовать таймер в режиме захвата (capture) и/или использовать входы захвата как источники прерываний при событиях смены состояний уровней на этих входах. Реверсивный счетчик для вычисления положения энкодера вам придется делать программно. Мне и нужен такой счетчик. У меня есть даташит и книжка по атмелам. Я все варианты там описанные попробовал. Все работает, но вот такой счетчик работающий по захвату нигде не могу найти. Описаны только выводы. А принципа работы нет.
|
|
|
|
|
Dec 26 2008, 19:00
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(inventor @ Dec 26 2008, 22:54)  А принципа работы нет. Принцип работы описал DRUID3 еще в сообщении #2. Используйте пины МК к которым подключен энкодер как входы внешних прерываний (INT6 и INT7). Об использовании их см. раздел External Interruprs в datasheet ATMega128.
|
|
|
|
|
Dec 26 2008, 20:16
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Прохожий @ Dec 27 2008, 00:54)  А почему бы не взять вместо Meg-и, что-нибудь более подходящее. dsPIC33FJ12MC201/202, например? Видимо потому, что Цитата(inventor) На работе посадили программировать Атмегу128
|
|
|
|
|
Dec 27 2008, 20:39
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(Прохожий @ Dec 27 2008, 00:50)  Поэтому лучше, когда "золотая середина". Доложил свое мнение, а дальше делаешь, что сказало руководство. Ему виднее. Но доложить-то надо... Ну, если бы мне дали возможность спроектировать эту плату, то я бы не использовал Мегу, так как там и алгоритмы для такого кристала сложноваты, да еще и памать дополнительная на борту. Что по моему мнению уже косяк. Сделал бы на каком-нибудь Тэмээсе.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|