微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用STM32对编码开关实现精确计数

用STM32对编码开关实现精确计数

时间:11-13 来源:互联网 点击:

NVIC->ISER[EXTI0_IRQn >> NVIC->ISER[EXTI0_IRQn >> 0x05] |=

(uint32_t)0x01 < (EXTI0_IRQn & (uint8_t)0x1F);

/* EXTI2 config */

SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI2_PA;

EXTI->IMR |= EXTI_IMR_MR2;

EXTI->RTSR |= EXTI_RTSR_TR2;

EXTI->FTSR |= EXTI_FTSR_TR2;

/* Enable the Selected IRQ Channels --------------------------------------*/

NVIC->ISER[EXTI2_TSC_IRQn >> 0x05] |=

(uint32_t)0x01 < (EXTI2_TSC_IRQn & (uint8_t)0x1F);

}

该方案外围电路简单,无需电容滤波,因采样点为脉冲中部,故工作可靠,在编码器的特定位置做上记号用手随意改变方向和速度做测试,最后总能在编码开关回到原位置时归零,缺点是需要IO具有上升/下降沿的双向边沿触发能力,以及使用了中断程序占用了部分资源。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top