打印

需要32位定时器,主要是如果需要电机速度很慢的话。

[复制链接]
3181|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
精益求精|  楼主 | 2010-12-9 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
16位--65536不够用。32位4294967296正好。一般都不要分频了。

对STM32的16位级联不了解,知道的大侠说说。

我只是特例啊。希望STM32出32位定时,和32位PWM...


友好讨论,拒绝抬杠。呵呵。
沙发
精益求精|  楼主 | 2010-12-9 15:54 | 只看该作者
现在用其他公司的ARM7(M3)...
感觉ST的STM32型号多,适合多种产品选型。

使用特权

评论回复
板凳
香水城| | 2010-12-9 16:15 | 只看该作者
哈哈,我开了一个帖请教,你却跑这里来了:请教"精益求精"关于控制慢电机时定时器位数的问题

我的困惑是:既然速度非常慢,为什么不能使用16位定时器通过软件实现呢?难道非要使用32位定时器不可?

要知道从系统成本考虑,用软件实现要比用硬件实现便宜,尤其是大批量产品。

使用特权

评论回复
地板
yybj| | 2010-12-9 18:45 | 只看该作者
这个问题让我也很困惑

使用特权

评论回复
5
airwill| | 2010-12-9 19:14 | 只看该作者
16位级联, 就是用一个定时器的溢出信号去作为另一个定时器的时钟输入的主从方式, 即一个定时器的 TRGO -> 另一个定时器的 ITR. 我记得库里有这个例子.

使用特权

评论回复
6
精益求精|  楼主 | 2010-12-9 21:10 | 只看该作者
在上一个帖子里,香版让另开一帖,所以开了这贴,没看到香版的帖子。

我先说说我的情况,不对请香版和其他大侠指正。
1,定时器溢出周期= (Period of timer clock input) * (32-bit Prescale + 1) * (32-bit TCMP)
设:预分频为0

使用特权

评论回复
7
精益求精|  楼主 | 2010-12-9 21:14 | 只看该作者
2.最大计数周期= 1/48 * (0+ 1) * (2^32)  假设 TCMP=48M
              =89478485.333333333333333333333333

使用特权

评论回复
8
精益求精|  楼主 | 2010-12-9 21:23 | 只看该作者
3.MotorTimer=(((uint32)(((float)TCMP)/MotorSpeed*OtherTempVar)))
但是MotorTimer必须小于等于最大计数周期

4,选择32位时,最大计数周期为89478485,
而选择16位,最大计数周期1365

使用特权

评论回复
9
精益求精|  楼主 | 2010-12-9 21:24 | 只看该作者
不对请指正。谢谢。

使用特权

评论回复
10
eydj2008| | 2010-12-10 08:16 | 只看该作者
是的 在TIME 里 有现成的例子 好好看看吧

使用特权

评论回复
11
香水城| | 2010-12-10 09:55 | 只看该作者
原理大致清楚,从6~8楼给出的计算方法,我还是不能解惑:既然速度非常慢,为什么不能使用16位定时器通过软件实现呢?难道非要使用32位定时器不可?

使用特权

评论回复
12
精益求精|  楼主 | 2010-12-10 10:07 | 只看该作者
定时器用16位可以实现,但16位的PWM实现不了,到了溢出时就中断,比65536大的周期,实现不了。非常想用PWM,控制电机非常好。呵呵。

STM32的型号多,价格低,非常有吸引。
谢谢各位。

使用特权

评论回复
13
eydj2008| | 2010-12-10 21:51 | 只看该作者
不是吧 你要32位的PWM? 那么高的精度?   精度不高 可以分频啊。
你想要多少时间 多少精度 我也做过电机

使用特权

评论回复
14
精益求精|  楼主 | 2011-5-31 09:02 | 只看该作者
16位定时器可以实现。但16位PWM加16为预分频不能实现。我说的都是低速的情况。

使用特权

评论回复
15
wenzj12345| | 2012-11-16 16:36 | 只看该作者
外部输入32位计数器有方法了···:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:开发新产品,完善旧产品。精益求精,追求卓越。 希望每一次硬件或软件的改进,都能把产品的质量提高一点。

19

主题

364

帖子

0

粉丝