飞捷
发表于 2024-4-11 09:26:22
百分之50的占空比,PWM发送脉冲,不断记录发送出去的脉冲数量,达到某个脉冲数修改对应的频率。
qepuemc
发表于 2024-4-11 15:51:36
飞捷 发表于 2024-4-11 09:26
百分之50的占空比,PWM发送脉冲,不断记录发送出去的脉冲数量,达到某个脉冲数修改对应的频率。 ...
这样用的话。一个p WM资源就只能给到伺服电机了。实际上我是用的一个pwm。资源给到任务调度。还有一个给到ao输出。所以就没有空余的这样做了。采用中断还行。{:5_270:}
飞捷
发表于 2024-4-12 00:12:53
qepuemc 发表于 2024-4-11 15:51
这样用的话。一个p WM资源就只能给到伺服电机了。实际上我是用的一个pwm。资源给到任务调度。还有一个给 ...
普通定时器就能做了
qepuemc
发表于 2024-4-12 09:22:58
飞捷 发表于 2024-4-12 00:12
普通定时器就能做了
求教普通定时器再哪里,
是不是定义一个1ms的定时器,然后再循环里进行累加如果到了100ms的倍数就去执行100需要执行的程序。到了500就执行500ms才执行一次的程序。然后到了2000就归 0就可以了。是这样吗?
xiangzichen
发表于 2024-4-12 09:46:24
飞捷 发表于 2024-4-12 00:12
普通定时器就能做了
我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当然都是直线插补关系.
飞捷
发表于 2024-4-12 15:32:51
qepuemc 发表于 2024-4-12 09:22
求教普通定时器再哪里,
是不是定义一个1ms的定时器,然后再循环里进行累加如果到了100ms的倍数就去执行1 ...
可能你们是走系统的,我不熟,我的意思是用定时器做PWM就好
飞捷
发表于 2024-4-12 15:33:34
xiangzichen 发表于 2024-4-12 09:46
我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当 ...
一个定时器搞定的话,这个定时器得细分到什么程序啊,微秒级?
xiangzichen
发表于 2024-4-12 17:02:15
本帖最后由 xiangzichen 于 2024-4-12 17:05 编辑
飞捷 发表于 2024-4-12 15:33
一个定时器搞定的话,这个定时器得细分到什么程序啊,微秒级?
STC能做到100K,那就是10us,STM32的话200K,5us.所有的多轴插补运算就在这5-10us内{:lol:},不对,应该在2-3us内完成的,这样才能电平才能翻转一次.否则频率就二分频了.我签名的 STC8C单轴控制器就是这样的,不过这个只控制一个电机,频率只有60K,但没有外扩任何资源,全部用的STC8C本身这些,包括刷8个数码管.
qepuemc
发表于 2024-4-12 21:43:35
飞捷 发表于 2024-4-12 15:32
可能你们是走系统的,我不熟,我的意思是用定时器做PWM就好
我不用系统,都是自己消化代码的。你的意思是用比如定时器4做时间定时器,然后时间设置为1MS或者0.1MS,然后系统也可以每达到时间就自己进行中断处理,然后在这个定时器中断里设置各种任务周期也是可以了。比哪1000MS显示一次数码管。 0.1MS的话就可以10K频率,0.1MS看一次设置比哪50000个脉冲,如果有转动信息就开始对50000进行操作,前5000和后5000升降速反转IO口,中间40000匀速,然后归零停止。对吧?
这时就可以这样设置多个定时器仿PLC操作如果信号触发后开启某个IO 6666MS就可以这样定时了。
谢谢
qepuemc
发表于 2024-4-12 21:52:20
xiangzichen 发表于 2024-4-12 09:46
我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当 ...
竟然把定时器给忘记了。STC上给的例子用的是PWMA B做任务调度定时系统。我用了一个现在看来确实是太浪费子。 应该用定时器更为合理。谢谢