标题: STM32编码器模式下,定时器只有16位,不够用怎么办? [打印本页]

作者: 质壁分离    时间: 2022-1-6 10:53
标题: STM32编码器模式下,定时器只有16位,不够用怎么办?
小弟刚学STM32,用的STM32F103C6,连接一个分辨率为2000的编码器
定时器选择编码器模式,选择T1 T2都触发
如果考虑逆时针和顺时针的话,只能转四圈就计数器就溢出了

请问有没有什么解决办法?
尽可能保证精度






作者: 188610329    时间: 2022-1-6 14:14
开中断,溢出后中断里给8位变量++, 那么你就等于有 24位 定时器了, 如果给 16位变量++, 那么你等于有32位定时器了。
作者: AUG    时间: 2022-1-6 15:19
16位定时器还不够?是你的处理方式不对,一圈才2000,你转一圈的时间要多少,你10ms读一次数然后清零计数值不就可以了?不存在你说的溢出好吧,除非你几秒钟才读一次,那肯定会溢出的,想都不用想。
作者: Hephaestus    时间: 2022-1-6 16:59
曾经有个项目核心就是定时器,一查STM32定时器只有16位太没有诚意了吧!果断换LPC1758,问题解决。
作者: nokiagx    时间: 2022-12-6 20:32
我也在纠结这个问题,好像没有好的解决办法
作者: nokiagx    时间: 2022-12-6 20:33
188610329 发表于 2022-1-6 14:14
开中断,溢出后中断里给8位变量++, 那么你就等于有 24位 定时器了, 如果给 16位变量++, 那么你等于有32 ...

这个中断在那里看不到
作者: coody_sz    时间: 2022-12-6 21:54
整一个32位变量,溢出中断+或-1,这样就有48位的值了。
作者: nokiagx    时间: 2022-12-7 14:22
AUG 发表于 2022-1-6 15:19
16位定时器还不够?是你的处理方式不对,一圈才2000,你转一圈的时间要多少,你10ms读一次数然后清零计数值 ...

你这招式理解不了
作者: nokiagx    时间: 2022-12-7 14:24
coody_sz 发表于 2022-12-6 21:54
整一个32位变量,溢出中断+或-1,这样就有48位的值了。

这种方法不能清零




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1