lichaoming 发表于 2025-4-16 17:09:20

再封装一下,加上原点回归搜索,就可以做简易运动控制器了

cadplus 发表于 2025-5-18 21:59:18

请教大佬,两轴插补时如何代入应用?

uzfvcapr 发表于 2025-5-27 11:37:49

stc8系列可以移植吗

温水煮派蒙 发表于 2025-9-1 08:33:37

感谢大佬分享,先收藏了。回头焊个板子试试。感觉控制伺服加速时间可以短一些。再搞个基底速度,S曲线就完美了。

猫虎的 发表于 2025-10-17 08:42:49

666,我都是直接怼,没加缓启动和缓停止{:4_167:}

lichaoming 发表于 2025-11-25 16:33:51

可以同时控制4个电机运动吗?

tlbxwsdy 发表于 2025-12-27 15:48:59

void PWMB_Init(void)
{
    PWMB_PSCRH = (u8)(1 >> 8);                        //配置预分频系数
    PWMB_PSCRL = (u8)(1 );               
                  
    PWMB_CCER1 = 0x00;                                    //写 CCMRx 前必须先清零 CCxE 关闭通道
    PWMB_CCER2 = 0x00;                           
    PWMB_CCMR1 = 0x68;                                    //通道模式配置 pwm模式1
        PWMB_CCER1 = 0x01;                                    //配置通道1输出使能和极性
               
    PWMB_ARRH = (u8)((2000-1) >> 8);                      //设置周期时间
    PWMB_ARRL = (u8)(2000-1);               
               
    PWMB_ENO = 0x00;               
    PWMB_ENO = ENO5P;                                    //使能输出
               
    PWMB_PS = 0x00;                                       //高级 PWM 通道输出脚选择位
    PWMB_PS |= PWM5_0;                                    //选择 PWM1_0 通道
       
    PWMB_IER |= (1<<2);                                     //使能更新中断
                  
    PWMB_BKR = 0x80;                                        //使能主输出

    PWMB_CCR5H = 0;                      //设置周期时间
    PWMB_CCR5L = 0;      
       
        PWMB_SR1 = 0;
        PWMB_CR1 = 0x80;
    PWMB_CR1 = 0x00;
    PWMB_ENO = 0x00;
    PWM1 = 1;
    DIR1 = 1;
      
    Variable_Init();
}
void Pluse_start()
{
       
        StartSave=Current;
        LadderOrderNum=0;//加减速级数序号为0       
       
        PWMB_PSCRH = (u8)((LadderPSC) >> 8);                        //配置预分频系数
        PWMB_PSCRL = (u8)((LadderPSC) );   
        PWMB_ARRH = (u8)(LadderARR >> 8);                        //配置预分频系数
        PWMB_ARRL = (u8)(LadderARR );   
        PWMB_CCR5H = (u8)((LadderARR/2) >> 8);                        //配置预分频系数
        PWMB_CCR5L = (u8)((LadderARR/2) );          
       
        delay_ms(2);

        PWMB_ENO = ENO5P;                                //启动计数器
       
        PWMB_CR1 = 0x80;
        PWMB_CR1 |= 0x01;
        PWMB_SR1 = 0;
    RunFlag=ON;                           //脉冲输出定位指令执行标志置ON
}
//========================================================================
// 函数: PWMA_ISR中断服务函数
// 描述: 0C1的更新中断重载OC2和OC3的初始比较值(准备置位),0C2和0C3的比较中断,准备翻转电平
// 参数: 无.
// 返回: 无.
// 版本: V1.0, 2022-9-30
//========================================================================
void PWMB_ISR() interrupt 27
{
        long temp;       

        if(PWMB_SR1 & 0x04)
        {
                PWMB_SR1 &= (~0x04);
                这个配置 是不是与中断 检测对不上   不是通道5吗   在这里怎么是通道6了没有看明白

xiangzichen 发表于 2026-1-15 10:57:42

lichaoming 发表于 2025-4-16 17:09
再封装一下,加上原点回归搜索,就可以做简易运动控制器了

https://www.stcaimcu.com/thread-22154-1-1.html
我封装了一个库,可以测试看看,无用关心任何底层,速度模式,点位模式,回零都支持

lichaoming 发表于 2026-1-28 10:59:06

xiangzichen 发表于 2026-1-15 10:57
https://www.stcaimcu.com/thread-22154-1-1.html
我封装了一个库,可以测试看看,无用关心任何底层,速度模 ...

感谢楼主分享
页: 1 2 3 [4]
查看完整版本: 步进电机的相对位置&绝对位置控制, STC32G PWM加减速脉冲输出控制