音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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)懷古 欄目:單片機
一個步進電機驅(qū)動程序,請各位指點一下
這是我寫的一個步進電機程序,通過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)懷古
怎么沒人說話。。。
 
3樓: >>參與討論
hebeijiang
呵呵,好象你沒問問題哦。
 
4樓: >>參與討論
潼關(guān)懷古
我主要是問下,我這個程序有沒啥錯誤,或改進得更好的地方!
 
5樓: >>參與討論
ssf621
m永遠大于0了吧?
 for (m=7;m>0;m=m-2)
對于unsigned CHAR m 來說,循環(huán)跳不出來吧

6樓: >>參與討論
潼關(guān)懷古
unsigned CHAR m, m=1 ,m-2 會出現(xiàn)什么情況啊???
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
初學者請教!
常用的P溝道增強型場效應管有哪些型號?
誰有SD卡的完整資料啊能給一份嗎
各位幫我看看ds18b20的顯示程序
關(guān)于初始化數(shù)據(jù)存儲區(qū)
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號