找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2694|回復(fù): 7
收起左側(cè)

單片機如何同時調(diào)用兩個子程序,輸出兩個脈沖控制兩個步進(jìn)電機驅(qū)動器

[復(fù)制鏈接]
ID:882819 發(fā)表于 2022-4-1 13:31 | 顯示全部樓層 |閱讀模式
本人小白,想寫個程序,51單片機輸出脈沖跟方向,來同時控制2個兩相四線步進(jìn)電機驅(qū)動器,輸出兩個脈沖使得兩個電機同時運行,脈寬跟占空比都不變,只是輸出脈沖個數(shù)不一樣。51單片機是單線程的,程序一步一步執(zhí)行,不存在同時調(diào)用兩個子程序,但網(wǎng)上有說用定時器中斷分時段控制,但驅(qū)動器脈沖輸入端頻率在10KHz(100us)左右能使電機運行,分時段控制時有沖突嗎?該怎么構(gòu)思程序結(jié)構(gòu),還有定時器1已經(jīng)用于串口通訊了。
51hei截圖_20220401132839.png
51hei截圖_20220401132855.png
51hei截圖_20220401132906.png
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2022-4-1 15:08 | 顯示全部樓層
概念:單片機任何時刻只能執(zhí)行一條指令,即不可以同時做兩件事!
所以:單片機同時調(diào)用兩個子程序,是錯誤的觀念!
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-4-1 17:03 | 顯示全部樓層
定時器0模式2(8位自動重裝)
設(shè)置50us中斷
中斷函數(shù)內(nèi)
if(X_Axis_Pulse>0)
{
P00 = !P00;
if(P00 == 0)
{
X_Axis_Pulse--;
}
}

main函數(shù)控制X_Axis_Pulse的數(shù)值來輸出脈沖
回復(fù)

使用道具 舉報

ID:844772 發(fā)表于 2022-4-1 17:31 | 顯示全部樓層
你剛接觸,給的脈沖不要太高,不要太窄,頻率1k就可以了,太高了光響不轉(zhuǎn)了。另外,交替的給兩個電機灌脈沖,看起來就是同時運行的。
回復(fù)

使用道具 舉報

ID:121859 發(fā)表于 2022-4-1 17:57 | 顯示全部樓層
不會吧,那個步進(jìn)電機能工作在10K頻率之下?一般也就1到2K的樣子。
回復(fù)

使用道具 舉報

ID:264021 發(fā)表于 2022-4-1 18:42 | 顯示全部樓層
單片機不能同時做兩件事,只能一件一件來做
回復(fù)

使用道具 舉報

ID:882819 發(fā)表于 2022-4-2 11:27 | 顯示全部樓層
lkc8210 發(fā)表于 2022-4-1 17:03
定時器0模式2(8位自動重裝)
設(shè)置50us中斷
中斷函數(shù)內(nèi)

謝謝您,剛才測試了下  解決了 原來是思路出問題了
回復(fù)

使用道具 舉報

ID:882819 發(fā)表于 2022-4-2 13:34 | 顯示全部樓層
zhxiufan 發(fā)表于 2022-4-1 17:57
不會吧,那個步進(jìn)電機能工作在10K頻率之下?一般也就1到2K的樣子。

是的,剛才測試了下,占空比20%,1K運行慢點更平穩(wěn)些,10K運行快但有點異響,長時間運行 1K的比較好些
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表