找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2640|回复: 8
收起左侧

STM32编码器模式下,定时器只有16位,不够用怎么办?

[复制链接]
ID:734122 发表于 2022-1-6 10:53 | 显示全部楼层 |阅读模式
小弟刚学STM32,用的STM32F103C6,连接一个分辨率为2000的编码器
定时器选择编码器模式,选择T1 T2都触发
如果考虑逆时针和顺时针的话,只能转四圈就计数器就溢出了

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





回复

使用道具 举报

ID:624769 发表于 2022-1-6 14:14 | 显示全部楼层
开中断,溢出后中断里给8位变量++, 那么你就等于有 24位 定时器了, 如果给 16位变量++, 那么你等于有32位定时器了。
回复

使用道具 举报

ID:313048 发表于 2022-1-6 15:19 | 显示全部楼层
16位定时器还不够?是你的处理方式不对,一圈才2000,你转一圈的时间要多少,你10ms读一次数然后清零计数值不就可以了?不存在你说的溢出好吧,除非你几秒钟才读一次,那肯定会溢出的,想都不用想。
回复

使用道具 举报

ID:883242 发表于 2022-1-6 16:59 | 显示全部楼层
曾经有个项目核心就是定时器,一查STM32定时器只有16位太没有诚意了吧!果断换LPC1758,问题解决。
回复

使用道具 举报

ID:152816 发表于 2022-12-6 20:32 | 显示全部楼层
我也在纠结这个问题,好像没有好的解决办法
回复

使用道具 举报

ID:152816 发表于 2022-12-6 20:33 | 显示全部楼层
188610329 发表于 2022-1-6 14:14
开中断,溢出后中断里给8位变量++, 那么你就等于有 24位 定时器了, 如果给 16位变量++, 那么你等于有32 ...

这个中断在那里看不到
回复

使用道具 举报

ID:1034262 发表于 2022-12-6 21:54 | 显示全部楼层
整一个32位变量,溢出中断+或-1,这样就有48位的值了。
回复

使用道具 举报

ID:152816 发表于 2022-12-7 14:22 | 显示全部楼层
AUG 发表于 2022-1-6 15:19
16位定时器还不够?是你的处理方式不对,一圈才2000,你转一圈的时间要多少,你10ms读一次数然后清零计数值 ...

你这招式理解不了
回复

使用道具 举报

ID:152816 发表于 2022-12-7 14:24 | 显示全部楼层
coody_sz 发表于 2022-12-6 21:54
整一个32位变量,溢出中断+或-1,这样就有48位的值了。

这种方法不能清零
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表