找回密码
 立即注册
楼主: 梁工

51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序

  [复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-20 12:42:34 | 显示全部楼层
梁*** 发表于 2025-2-20 15:43
每个脉冲中断2次,控制1个电机最好不超过50KHz,多个电机最好不超过20KHz。
1.8度的步进电机使用较高的细 ...

梁工,请教一下,PWMA脉冲和MODBUS有冲突,只有在发脉冲时候关闭轮询才能正常使用,不然步进会卡顿,有什么办法解决这个问题吗

点评

PWM怎么可能跟MODBUS有冲突?PWM是一个数字硬件外设,MODBUS是一个软件协议,风牛马不相及啊!我实在想不到这两会有什么关联,你还是仔细检查一下你的程序逻辑吧。记住:程序中不要频繁使用几十us以上的软件延时,不  详情 回复 发表于 2025-3-20 14:58
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-3-20 14:58:06 | 显示全部楼层
李*** 发表于 2025-3-20 12:42
梁工,请教一下,PWMA脉冲和MODBUS有冲突,只有在发脉冲时候关闭轮询才能正常使用,不然步进会卡顿,有什 ...

PWM怎么可能跟MODBUS有冲突?PWM是一个数字硬件外设,MODBUS是一个软件协议,风牛马不相及啊!我实在想不到这两会有什么关联,你还是仔细检查一下你的程序逻辑吧。记住:程序中不要频繁使用几十us以上的软件延时,不要等待事件,中断更不能等待。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-20 15:03:40 | 显示全部楼层
梁*** 发表于 2025-3-20 14:58
PWM怎么可能跟MODBUS有冲突?PWM是一个数字硬件外设,MODBUS是一个软件协议,风牛马不相及啊!我实在想不 ...

程序里没有的软件延时的,是上位机和单片机进行MODBUS通讯的时候,如果PWMA在发脉冲,那么脉冲会卡顿,应该是通讯轮询进中断的影响

点评

PWM中断必须是最高优先级。MODBUS轮询应该在主程序中执行,不会影响中断的。  详情 回复 发表于 2025-3-20 17:39
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-20 15:06:34 | 显示全部楼层
梁*** 发表于 2025-3-20 14:58
PWM怎么可能跟MODBUS有冲突?PWM是一个数字硬件外设,MODBUS是一个软件协议,风牛马不相及啊!我实在想不 ...

现在处理方法是把PWMA的中断优先级设最高,并且PWMA发脉冲的时候,关闭通讯轮询,发完脉冲再打开,这样就正常了,但是想问下有没有更好的处理方法
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-3-20 17:39:04 | 显示全部楼层
李*** 发表于 2025-3-20 15:03
程序里没有的软件延时的,是上位机和单片机进行MODBUS通讯的时候,如果PWMA在发脉冲,那么脉冲会卡顿,应 ...

PWM中断必须是最高优先级。MODBUS轮询应该在主程序中执行,不会影响中断的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-26 15:39:17 | 显示全部楼层
梁*** 发表于 2025-3-20 17:39
PWM中断必须是最高优先级。MODBUS轮询应该在主程序中执行,不会影响中断的。 ...

PWM中断和算加减速的定时器1已经设为最高优先级了,MODBUS轮询也在主程序中,但是还是有影响

点评

我实在想不到,什么原因主程序能影响中断的执行,想想都不可能。  详情 回复 发表于 2025-3-26 15:53
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-3-26 15:53:12 | 显示全部楼层
李*** 发表于 2025-3-26 15:39
PWM中断和算加减速的定时器1已经设为最高优先级了,MODBUS轮询也在主程序中,但是还是有影响 ...

我实在想不到,什么原因主程序能影响中断的执行,想想都不可能。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-26 16:32:30 | 显示全部楼层
梁*** 发表于 2025-3-26 15:53
我实在想不到,什么原因主程序能影响中断的执行,想想都不可能。

我Modbus是移植的Free-Modbus,已经在STC8上用几年了,现在是想控制步进,所以加上了你写的 匹配翻转输出脉冲控制步进电机驱动器-STC8H-PWMA输出,没搞懂咋回事
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:289
  • 最近打卡:2025-04-30 17:31:36
已绑定手机

2

主题

182

回帖

1240

积分

金牌会员

积分
1240
发表于 2025-3-28 17:15:19 | 显示全部楼层
梁*** 发表于 2025-3-26 15:53
我实在想不到,什么原因主程序能影响中断的执行,想想都不可能。

找到问题了,FreeModbus里面好几个EA=0 EA=1,不过他定义了其他名称,删掉就好了

点评

非必要,中途不要操作EA。  详情 回复 发表于 2025-3-28 18:37
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-3-28 18:37:45 | 显示全部楼层
李*** 发表于 2025-3-28 17:15
找到问题了,FreeModbus里面好几个EA=0 EA=1,不过他定义了其他名称,删掉就好了 ...

非必要,中途不要操作EA。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:51 , Processed in 0.184091 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表