|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
一個步進電機驅(qū)動程序,請各位指點一下 |
| 作者:潼關(guān)懷古 欄目:單片機 |
這是我寫的一個步進電機程序,通過MP(代表其中一個P口)的高4位來控制,AA`BB`-4,5,6,7腳。12細分,沒行數(shù)組里面分4對,每對數(shù)第一個加到P口控制電流方向,第二個數(shù)控制通電時間。正轉(zhuǎn)AA`-BB`-A`A-B`B,數(shù)組由1到12行的讀取,反轉(zhuǎn)B`B-A`A-BB`-AA`,數(shù)組由12到1行的讀取。參數(shù)POWER表示電機啟動還是不啟動,DIRECT參數(shù)表示方向,SPEED表示速度等級,每項通電時間用數(shù)組中的植/SPEED。本程序沒考慮要走多少步的情況,調(diào)用一次就走一步。因為是第一次做,還請各位大俠幫我看看有沒錯誤 #include <CPU8052.h> unsigned CHAR yx[12][8]={ {16,128,64,222,32,128,128,222}, {16,222,64,128,32,222,128,128}, {16,256,64,0,32,256,128,0}, {16,222,128,128,32,222,64,128}, {16,128,128,222,32,128,64,222}, {16,0,128,256,32,0,64,256}, {32,128,128,222,16,128,64,222}, {32,222,128,128,16,222,64,128}, {32,256,128,0,16,256,64,0}, {32,222,64,128,16,222,128,128}, {32,128,64,222,16,128,128,222}, {32,0,64,256,16,0,128,256}}; // struct moto{ unsigned CHAR POWER; //電機電源 unsigned CHAR direct; //方向 unsigned CHAR speed; //速度 unsigned CHAR oldspeed; } moto1; void motop(unsigned CHAR POWER,unsigned CHAR direct,unsigned CHAR speed) { unsigned CHAR i,m,motomp,n; if (~POWER) { MP=MP&0XF0; } if (POWER) { if (direct) { for (i=0;i<12;i++) { for (m=1;m<8;m=m+2){ MP=MP&0xf0+yx[i][m]; motomp=yx[i][m+1]/speed; for (n=0;n<motomp;n++); } } } else { for (i=0;i<12;i++) { for (m=7;m>0;m=m-2){ MP=MP&0xf0+yx[i][m]; motomp=yx[i][m+1]/speed; for (n=0;n<motomp;n++); } } } } } |
| 2樓: | >>參與討論 |
| 作者: 潼關(guān)懷古 于 2005/1/27 10:39:00 發(fā)布:
怎么沒人說話。。。 |
|
| 3樓: | >>參與討論 |
| 作者: hebeijiang 于 2005/1/27 10:52:00 發(fā)布:
呵呵,好象你沒問問題哦。 |
|
| 4樓: | >>參與討論 |
| 作者: 潼關(guān)懷古 于 2005/1/27 15:34:00 發(fā)布:
我主要是問下,我這個程序有沒啥錯誤,或改進得更好的地方! |
|
| 5樓: | >>參與討論 |
| 作者: ssf621 于 2005/1/27 16:13:00 發(fā)布:
m永遠大于0了吧? for (m=7;m>0;m=m-2) 對于unsigned CHAR m 來說,循環(huán)跳不出來吧 |
|
| 6樓: | >>參與討論 |
| 作者: 潼關(guān)懷古 于 2005/1/27 19:04:00 發(fā)布:
unsigned CHAR m, m=1 ,m-2 會出現(xiàn)什么情況啊??? |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |