本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Eric Ma 说:CAP一般是用来计算脉冲的周期和占空比的。不能区别正反转。
ERIC
谢谢,
可是我并不需要知道电机处于正转还是反转的状态啊。
我只需要知道速度就行了。所以利用CAP寄存器里的计数器CTR值,也应该是能算出电机速度的吧?
Eric Ma 说:不建议。
例如,1024线的光电编码器转动一圈会产生4096个脉冲,你如果用CAP对每个脉冲进行捕获,太浪费CPU时间,速度环本来就不需要这么大的控制频率。
另外,你用一个脉冲的周期就确定转速,不知道是否会造成转速波动较大。
ERIC
原来是这样,太谢谢你了。thanks!
Jason Wu4 说:恩,完全可以使用CAP中断测量电机转速,通过捕获脉宽对应电角度进而得到电机转速大小,还需根据相位差计算转速方向。
谢谢,我也是这么想的。光电编码器的话,刚刚上面有人告诉我说,不建议。
但如果是磁敏式的霍尔元件传感器,这个方法应该也是可行的。