本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Eric Ma:
CAP一般是用来计算脉冲的周期和占空比的。不能区别正反转。
ERIC
本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Chess Shung:
回复 Eric Ma:
Eric Ma
CAP一般是用来计算脉冲的周期和占空比的。不能区别正反转。
ERIC
本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Jason Wu4:
恩,完全可以使用CAP中断测量电机转速,通过捕获脉宽对应电角度进而得到电机转速大小,还需根据相位差计算转速方向。
本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Chess Shung:
回复 Eric Ma:
Eric Ma
不建议。
例如,1024线的光电编码器转动一圈会产生4096个脉冲,你如果用CAP对每个脉冲进行捕获,太浪费CPU时间,速度环本来就不需要这么大的控制频率。
另外,你用一个脉冲的周期就确定转速,不知道是否会造成转速波动较大。
ERIC
本人做的事28335的电机控制 ,目前做的是直流无刷
在看了很多程序后,发现,所有的程序里,测量电机的速度,用的都是自己写的程序,比如下面这个:
但是,我们都知道28335的cap是拥有一个计数器的。也就是说,当外部信号和当前CAP设置一致时,并将当前计数器CTR值,赋给CAP寄存器。
那么为什么大家还要另外写一个程序,来计算电机的速度呢?直接用CAP寄存器里,计数器CTR值,不也能计算出电机的转速吗?
谢谢。
Chess Shung:
回复 Jason Wu4:
Jason Wu4
恩,完全可以使用CAP中断测量电机转速,通过捕获脉宽对应电角度进而得到电机转速大小,还需根据相位差计算转速方向。