lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1043 個
工控威望: 1148 點
下載積分: 2801 分
在線時間: 767(小時)
注冊時間: 2009-08-02
最后登錄: 2024-09-18
查看lzhpsky的 主題 / 回貼
樓主  發(fā)表于: 2011-05-27 13:59



1.我用HSC0的10模式,來計數(shù)AB相脈沖,我用狀態(tài)表監(jiān)控HSC0的數(shù)值不斷變化,可是SMD38當前計數(shù)值怎么沒變化?

2.當前的計數(shù)值在哪個寄存器里?怎么取出來?

3.設(shè)定值是6000,計數(shù)值到6000后產(chǎn)生中斷,這個沒問題,但是編碼器轉(zhuǎn)動時,HSC0還會計數(shù)。怎么寫程序就可以實現(xiàn)計數(shù)到6000后,在中斷里HSC0里面的當前值馬上清零,旋轉(zhuǎn)編碼器旋轉(zhuǎn)時,還不會計數(shù)。等再啟動時才開始計數(shù),就是說到6000后怎么清掉HSC0的值。
lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1043 個
工控威望: 1148 點
下載積分: 2801 分
在線時間: 767(小時)
注冊時間: 2009-08-02
最后登錄: 2024-09-18
查看lzhpsky的 主題 / 回貼
1樓  發(fā)表于: 2011-05-27 16:04
lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1043 個
工控威望: 1148 點
下載積分: 2801 分
在線時間: 767(小時)
注冊時間: 2009-08-02
最后登錄: 2024-09-18
查看lzhpsky的 主題 / 回貼
2樓  發(fā)表于: 2011-05-27 18:44
大家沒知道的嗎?
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5173 個
工控威望: 7396 點
下載積分: 157929 分
在線時間: 3135(小時)
注冊時間: 2007-11-21
最后登錄: 2024-09-20
查看sjm213的 主題 / 回貼
3樓  發(fā)表于: 2011-05-27 19:45
引用
1.我用HSC0的10模式,來計數(shù)AB相脈沖,我用狀態(tài)表監(jiān)控HSC0的數(shù)值不斷變化,可是SMD38當前計數(shù)值怎么沒變化?

HSC0中記錄的才是你理解的“當前計數(shù)值”。SMD38中的當前值是指執(zhí)行一定的指令時將HC0的當前值改為SMD38中的值。
引用
2.當前的計數(shù)值在哪個寄存器里?怎么取出來?

當前的計數(shù)值就在HC0中,直接MOVE到某個寄存器中就可使用,或者直接使用HC0;
引用
3.設(shè)定值是6000,計數(shù)值到6000后產(chǎn)生中斷,這個沒問題,但是編碼器轉(zhuǎn)動時,HSC0還會計數(shù)。怎么寫程序就可以實現(xiàn)計數(shù)到6000后,在中斷里HSC0里面的當前值馬上清零,旋轉(zhuǎn)編碼器旋轉(zhuǎn)時,還不會計數(shù)。等再啟動時才開始計數(shù),就是說到6000后怎么清掉HSC0的值。


本帖最近評分記錄:
  • 下載積分:+2(wsir123) 非常詳細!
  • 下載積分:+2(guochunyi) 熱心助人
  • 下載積分:+1(wslok) 感謝分享
    回憶依然最美
    一不小心混進社會, 浪子回頭已經(jīng)白費... ...
    級別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 1240 個
    工控威望: 2873 點
    下載積分: 21618 分
    在線時間: 1322(小時)
    注冊時間: 2008-06-16
    最后登錄: 2024-09-14
    查看回憶依然最美的 主題 / 回貼
    4樓  發(fā)表于: 2011-05-27 19:46
    1.不能直接監(jiān)視SMD38的值;
    2.想要讀取HSC0的當前值可以在程序里直接雙字尋址HC0,也可以用MOV_DW指令傳送到一個雙字寄存器地址;
    3.可能是在中端程序里設(shè)置的HSC0參數(shù)不正確,或者設(shè)置玩參數(shù)并將當前值清零后沒有再次調(diào)用HSC指令啟用高速計數(shù)器,請樓主查查看!
    本帖最近評分記錄:
  • 下載積分:+1(guochunyi) 熱心助人
    liuhuaxing
    LIUHUAXING
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 966 個
    工控威望: 1172 點
    下載積分: 3446 分
    在線時間: 624(小時)
    注冊時間: 2011-03-26
    最后登錄: 2024-06-26
    查看liuhuaxing的 主題 / 回貼
    5樓  發(fā)表于: 2011-05-27 20:43
    今天是個特別的日子,版主、高手大聚會,要是天天這樣,我該請假來這兒向老師們學(xué)習(xí)學(xué)習(xí)。
    woaqqdfq
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 54 個
    工控威望: 208 點
    下載積分: 490 分
    在線時間: 18(小時)
    注冊時間: 2009-09-08
    最后登錄: 2016-04-15
    查看woaqqdfq的 主題 / 回貼
    6樓  發(fā)表于: 2011-05-27 21:07
    1.不能直接監(jiān)視SMD38的值;
    2.想要讀取HSC0的當前值可以在程序里直接雙字尋址HC0,也可以用MOV_DW指令傳送到一個雙字寄存器地址;
    3.可能是在中端程序里設(shè)置的HSC0參數(shù)不正確,或者設(shè)置玩參數(shù)并將當前值清零后沒有再次調(diào)用HSC指令啟用高速計數(shù)器,請樓主查查看!
    lzhpsky
    工控小菜鳥
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 1043 個
    工控威望: 1148 點
    下載積分: 2801 分
    在線時間: 767(小時)
    注冊時間: 2009-08-02
    最后登錄: 2024-09-18
    查看lzhpsky的 主題 / 回貼
    7樓  發(fā)表于: 2011-05-28 08:50
    謝謝大家的解答。
    lzhpsky
    工控小菜鳥
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 1043 個
    工控威望: 1148 點
    下載積分: 2801 分
    在線時間: 767(小時)
    注冊時間: 2009-08-02
    最后登錄: 2024-09-18
    查看lzhpsky的 主題 / 回貼
    8樓  發(fā)表于: 2011-05-28 20:20



    問題已解決,中斷程序這樣寫,可以馬上清除當前計數(shù)值,關(guān)閉HSC1,即使旋轉(zhuǎn)編碼器動作也不計數(shù)。OK。謝謝大家