реклама на сайте
подробности

 
 
> Эмуляция энкодера.
Jenya7
сообщение Jul 24 2017, 05:45
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Что бы проверить работу таймера в режиме энкодера я решил эмулировать на двух ножках AB сигналы.
Код
void TIM7_IRQHandler(void)
{
   switch (enc_state)
   {
       case 0:
           GPIOF->BSRR = GPIO_Pin_9;   //1
           GPIOF->BRR = GPIO_Pin_10;   //0
       break;
       case 1:
           GPIOF->BSRR = GPIO_Pin_9;   //1
           GPIOF->BSRR = GPIO_Pin_10;  //1
       break;
       case 2:
           GPIOF->BRR = GPIO_Pin_9;   //0
           GPIOF->BSRR = GPIO_Pin_10; //1
       break;
       case 3:
           GPIOF->BRR = GPIO_Pin_9;   //0
           GPIOF->BRR = GPIO_Pin_10; //0
       break;
   }
  
   if(enc_state == 3)
     enc_state = 0;
   else
     enc_state++;
  
   TIM7->SR = 0;
}

По идее должно работать как на картинке, сигналы сдвинуты на 90 градусов, но на скопе я вижу сигналы в одной фазе. Это скоп так показывает или у меня ошибка?

Сообщение отредактировал Jenya7 - Jul 24 2017, 05:46
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Эдди
сообщение Jul 24 2017, 13:33
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Заведите отдельный счетчик, и в прерывании UE инкрементируйте/декрементируйте, смотря в какую сторону прерывание произошло.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Эмуляция энкодера.   Jul 24 2017, 05:45
- - k155la3   Задайте состояния выходов для энкодера таблицей. И...   Jul 24 2017, 06:03
|- - Jenya7   Цитата(k155la3 @ Jul 24 2017, 11:03) Зада...   Jul 24 2017, 06:10
- - k155la3   скорее всего глючек не в приведенном коде, а ...   Jul 24 2017, 07:13
|- - Jenya7   Цитата(k155la3 @ Jul 24 2017, 12:13) скор...   Jul 24 2017, 07:21
- - Эдди   А таймер случайно в ту же ногу не выдает импульсы?   Jul 24 2017, 07:38
|- - Jenya7   Цитата(Эдди @ Jul 24 2017, 12:38) А тайме...   Jul 24 2017, 07:43
- - esaulenka   Тут прерывание срабатывает два раза. После команды...   Jul 24 2017, 07:57
|- - Jenya7   Цитата(esaulenka @ Jul 24 2017, 12:57) Ту...   Jul 24 2017, 08:23
- - esaulenka   Никогда _достаточно_ глубоко не разбирался, но сут...   Jul 24 2017, 08:47
|- - Jenya7   Цитата(esaulenka @ Jul 24 2017, 13:47) Ни...   Jul 24 2017, 09:17
- - Эдди   А частота какая? Странно, что такой небольшой кусо...   Jul 24 2017, 10:25
|- - Jenya7   Цитата(Эдди @ Jul 24 2017, 15:25) А часто...   Jul 24 2017, 10:53
|- - k155la3   Цитата(Jenya7 @ Jul 24 2017, 13:53) . . ....   Jul 24 2017, 11:46
|- - Jenya7   Цитата(k155la3 @ Jul 24 2017, 16:46) я по...   Jul 24 2017, 12:17
|- - Jenya7   Цитата(Эдди @ Jul 24 2017, 18:33) Заведит...   Jul 24 2017, 15:03
- - Эдди   Можно почитать ST'шный RM по поводу связывания...   Jul 24 2017, 19:05
- - uriy   Для генерации такого сигнала не нужны никакие прер...   Jul 25 2017, 04:56
- - Александр1986   Всем привет. Ребята помогите разобраться с маркиро...   Aug 15 2017, 10:40
- - XVR   Цитата(Александр1986 @ Aug 15 2017, 13:40...   Aug 15 2017, 13:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2025 - 16:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016