星火前行 发表于 2025-10-25 15:43:54

梁工您好,学习细分驱动-STC8H的范例程序遇到不懂的,请问:
1, u16GetStep(u16 f,u16 f_set)的参数 f,f_set是1秒的脉冲数,还是电机转一圈所需的脉冲数?
2, M1_UpPulse=(u16)((u32)(f+f_set)*100mS/2000),为什么要/2取中心值啊,这能计算精确吗?
3, M1_DownCnt=M1_PulseCnt-M1_UpPulse, 有没有包含均速阶段的脉冲?
4, f1_period = 65536UL - MAIN_Fosc/12/f1;MAIN_Fosc/12是Timer1的输入脉冲,后面/f1是什么含义
合适的时候希望能指导一下,谢谢老师



星火前行 发表于 2025-10-25 16:03:45

梁老师,学习您的范例程序:细分驱动-STC8H有些不懂的想请教:
1,u16GetStep(u16 f, u16 f_set)的参数 f,f_set是1秒的脉冲数,还是电机转一圈所需脉冲数?
2,M1_UpPulse = (u16)((u32)(f + f_set)*UpTime / 2000)为什么要/2取中心值,这样还能精确吗?
3,M1_DownCnt = M1_PulseCnt - M1_UpPulse; 有没有包含匀速转动的脉冲?
4,f1_period = 65536UL - MAIN_Fosc/12/f1; MAIN_Fosc/12是Timer1输入脉冲,为什么要/f1 ?
希望指点迷津!

星火前行 发表于 2025-10-25 16:16:23

求指导

梁工 发表于 2025-10-25 16:32:36

星火前行 发表于 2025-10-25 16:03
梁老师,学习您的范例程序:细分驱动-STC8H有些不懂的想请教:
1,u16GetStep(u16 f, u16 f_set)的参数...

1、f是频率,Hz。
2、初中物理知识:匀加速平均速度 = (V1+V2)/2,频率也一样。
3、注释很清楚:电机开始减速需要走过的脉冲数。
4、period是啥意思知道不? 是周期,周期不就是1/f吗?

星火前行 发表于 2025-10-26 08:49:39

老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”是像加速一样的减速阶段吗,还是开始减速之前的脉冲?
4、f1_period是T1的预装值。MAIN_Fosc/12/f1就是待计数值。请问T1怎么控制电机的,溢出一次发一次脉冲吗?

梁工 发表于 2025-10-26 10:22:23

星火前行 发表于 2025-10-26 08:49
老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”是像加速一样的减速阶段吗,还是开始减速 ...

3、比如本次要走10000个脉冲,开始减速需要走过的脉冲数M1_DownCnt=9500,即9500个脉冲开始减速。
4、f1_period是T1的预装值,控制Timer1的中断率,中断里处理驱动脉冲、脉冲计数等等,详情请参考程序源码。

星火前行 发表于 2025-10-26 11:13:45


好的,谢谢老师

星火前行 发表于 2025-10-27 15:32:59

   
   请问老师,
   1,f, p取值公式为什么要 *10, 又 - '0' 啊?能否讲解一下原理

   2,当串口接收完L1, 500, 1000,此时RX1_Cnt的值是多少啊,为什么RX1_Buffer[]要定义有32个元素,这么长?






星火前行 发表于 2025-10-27 15:54:31

老师,这个Timer0/1的初始化函数,当t=0, reload是主时钟周期数,就是频率24M吗
                                                   当t=1, reload是主时钟的周期时间1/24M吗
                                                   为什么要跟MAIN_Fosc相乘,得到是?


页: 13 14 15 16 17 18 19 20 21 22 [23]
查看完整版本: 51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序