找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机如何同时调用两个子程序,输出两个脉冲控制两个步进电机驱动器

查看数: 3336 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-1 13:31

正文摘要:

本人小白,想写个程序,51单片机输出脉冲跟方向,来同时控制2个两相四线步进电机驱动器,输出两个脉冲使得两个电机同时运行,脉宽跟占空比都不变,只是输出脉冲个数不一样。51单片机是单线程的,程序一步一步执行, ...

回复

ID:882819 发表于 2022-4-2 13:34
zhxiufan 发表于 2022-4-1 17:57
不会吧,那个步进电机能工作在10K频率之下?一般也就1到2K的样子。

是的,刚才测试了下,占空比20%,1K运行慢点更平稳些,10K运行快但有点异响,长时间运行 1K的比较好些
ID:882819 发表于 2022-4-2 11:27
lkc8210 发表于 2022-4-1 17:03
定时器0模式2(8位自动重装)
设置50us中断
中断函数内

谢谢您,刚才测试了下  解决了 原来是思路出问题了
ID:264021 发表于 2022-4-1 18:42
单片机不能同时做两件事,只能一件一件来做
ID:121859 发表于 2022-4-1 17:57
不会吧,那个步进电机能工作在10K频率之下?一般也就1到2K的样子。
ID:844772 发表于 2022-4-1 17:31
你刚接触,给的脉冲不要太高,不要太窄,频率1k就可以了,太高了光响不转了。另外,交替的给两个电机灌脉冲,看起来就是同时运行的。
ID:161164 发表于 2022-4-1 17:03
定时器0模式2(8位自动重装)
设置50us中断
中断函数内
if(X_Axis_Pulse>0)
{
P00 = !P00;
if(P00 == 0)
{
X_Axis_Pulse--;
}
}

main函数控制X_Axis_Pulse的数值来输出脉冲
ID:123289 发表于 2022-4-1 15:08
概念:单片机任何时刻只能执行一条指令,即不可以同时做两件事!
所以:单片机同时调用两个子程序,是错误的观念!

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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