<table id="oyqe4"><input id="oyqe4"></input></table>
<legend id="oyqe4"><input id="oyqe4"></input></legend><blockquote id="oyqe4"><menu id="oyqe4"></menu></blockquote>
  • <blockquote id="oyqe4"></blockquote>
  • <menu id="oyqe4"><table id="oyqe4"></table></menu>
  • <bdo id="oyqe4"></bdo>
  • <menu id="oyqe4"><optgroup id="oyqe4"></optgroup></menu>
  • <optgroup id="oyqe4"><samp id="oyqe4"></samp></optgroup>

    當前位置:首頁 >>新聞資訊 >>行業資訊行業資訊

    發現步進電機定位不準怎么辦

    發布時間:2015-10-29 11:50:37    瀏覽次數:

    一、問題現象及分析 問題經常通過以下編程表現出來:

    //X發出脈沖后,等待脈沖發完后再做其它事情
    d1000_start_t_move( 0, 6400, 3200, 6400, 0.1 );
    while( d1000_check_done(0) == 0 ); 老版本的庫函數如下:

    d1000_start_tr_move( 0, 6400, 3200, 6400, 0.1 );
    while( d1000_check_done(0) == 0 ); 或者:
    d1000_wait_done( 0 ); 此函數內部實際上包含類似于while( d1000_check_done(0) == 0 );的語句 以上可以看出,在檢測脈沖是否發完時,此段代碼的執行完全獨占了CPU分配給當前進程的所有時間, 因而也排擠了其它消息的響應,當然也就不能響應定時器讀取位置,或其它停止操作等. 二、解決方法 解決此問題關鍵是讓while循環時能檢測系統消息,以下分別介紹在VB,VC,CB下的解決措施: 注:以下編程全以DMC1000最新的驅動庫函為參考

    1.VB編程
    d1000_start_t_move 0, 6400, 3200, 6400, 0.1
    DO
    DoEvents
    LOOP WHILE (d1000_check_done(0) = 0)

    2.VC編程 在VC下編程關鍵是要解決類似于VB的DoEvnets函數

    void DoEvents()
    {
    static MSG msg;
    if( ::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) ){
    ::TranslateMessage( &msg );
    ::DispatchMessage( &msg );
    }

    上一篇:步進電機的種類和特點
    下一篇:一、什么是步進電機?在何種情況下該使用步進電機?

    地址:江蘇省常州市武進經發區禮河鎮東方南路 座機:0519-83661338 傳真:0519-83663662 郵箱:jinbei@jin-bei.com
    Copyright © 2002-2016 jin-bei.COM. 常州市金杯控制電機有限公司 版權所有 ICP:蘇ICP備15053879號
    技術支持:常州天際網絡

    播播影院_窝窝电影_YY4480被窝电影网_777电影网_IE电影天堂