梁工您好,学习细分驱动-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是什么含义
合适的时候希望能指导一下,谢谢老师
梁老师,学习您的范例程序:细分驱动-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:03
梁老师,学习您的范例程序:细分驱动-STC8H有些不懂的想请教:
1,u16GetStep(u16 f, u16 f_set)的参数...
1、f是频率,Hz。
2、初中物理知识:匀加速平均速度 = (V1+V2)/2,频率也一样。
3、注释很清楚:电机开始减速需要走过的脉冲数。
4、period是啥意思知道不? 是周期,周期不就是1/f吗?
老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”是像加速一样的减速阶段吗,还是开始减速之前的脉冲?
4、f1_period是T1的预装值。MAIN_Fosc/12/f1就是待计数值。请问T1怎么控制电机的,溢出一次发一次脉冲吗?
星火前行 发表于 2025-10-26 08:49
老师,您好
1、2、基本理解;
3、“开始减速需要走过的脉冲数”是像加速一样的减速阶段吗,还是开始减速 ...
3、比如本次要走10000个脉冲,开始减速需要走过的脉冲数M1_DownCnt=9500,即9500个脉冲开始减速。
4、f1_period是T1的预装值,控制Timer1的中断率,中断里处理驱动脉冲、脉冲计数等等,详情请参考程序源码。
好的,谢谢老师
请问老师,
1,f, p取值公式为什么要 *10, 又 - '0' 啊?能否讲解一下原理
2,当串口接收完L1, 500, 1000,此时RX1_Cnt的值是多少啊,为什么RX1_Buffer[]要定义有32个元素,这么长?
老师,这个Timer0/1的初始化函数,当t=0, reload是主时钟周期数,就是频率24M吗
当t=1, reload是主时钟的周期时间1/24M吗
为什么要跟MAIN_Fosc相乘,得到是?