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

 
 
> STM32f103 прерывания в режиме энкодера
georgfour
сообщение May 19 2016, 19:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 31-12-15
Пользователь №: 89 900



Добрый день!
Хотел спросить у знающих людей, дабы ткнули меня носом, а то я подзапутался - как сделать так, чтобы происходило прерывание при повороте ручки механического энкодера?
Какие конкретно нужно эвенты сконфигурировать и как это будет работать.
Заранее спасибо за помощь!

Я пробовал делать по переполнению, однако ничего не работает:
Я включил общие прерывани и прерывания по таймеру 2:
__enable_irq ();//enable common interrupts
NVIC_EnableIRQ(TIM2_IRQn);//enable TIMER2 interrupt
Потом при инициализации таймера поставил бит :
TIM2->DIER|=TIM_DIER_UIE;
и вот так выглядит обработчик прерываний:
void TIM2_IRQHandler(void)
{
NVIC_DisableIRQ(TIM2_IRQn);
shift_cursor(1);
TIM2->SR &= ~TIM_SR_UIF;
NVIC_EnableIRQ(TIM2_IRQn);
}

И вообщем ничего не работает.
Значения в счетном регистре CNT изменяются как и положено при вращении ручки энкодера.
В чем может быть проблема?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan-maniak
сообщение May 20 2016, 11:27
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



а если период сделать равным 1
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:00
Рейтинг@Mail.ru


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