欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機數碼管顯示對步進電機驅動的影響 [打印本頁]

作者: yermsir    時間: 2021-8-10 22:33
標題: 關于單片機數碼管顯示對步進電機驅動的影響
用的吳鑒鷹的板子,我自己編寫了一個用數字旋轉編碼器來選擇步進電機運行方式的程序。旋轉編碼器為1,步進電機就轉1圈;旋轉編碼器為2,步進電機就轉2圈;旋轉編碼器為3,步進電機就轉3圈。旋轉編碼器的數值是在數碼管上顯示。   使用硬件:吳鑒鷹開發板     使用編譯器:Keil
如果我把數碼管顯示函數和步進電機驅動函數都在T0中斷函數中執行,2ms進入一次中斷,步進電機可以按照旋轉編碼器對應的數字來旋轉。如果數碼管顯示函數在T0中斷函數中執行,步進電機驅動函數都在T1中斷函數中執行,T0中斷2ms進入一次,T1中斷2ms進入一次,步進電機卻一直在抖動,不能有效轉動。兩個中斷是怎么互相影響的呢,有沒有辦法解決。我有附上keil工程文件。數碼管顯示函數和步進電機驅動函數都在T0中斷函數中執行,步進電機有效轉動:

數碼管顯示函數在T0執行,步進電機驅動函數在T1中斷函數中執行,步進電機不能有效轉動:


lession17.rar

37 KB, 下載次數: 8

Keil工程文件


作者: npn    時間: 2021-8-11 07:21
請配置中斷優先級控制寄存器 PT0、PT1。
作者: munuc_w    時間: 2021-8-11 08:29
程序設計思想有問題,第一,中斷服務程序要短小精悍,執行時間盡可能的短,不然,CPU在中斷中時間較長,其它任務得不到CPU的服務;第二,T0,T1的中斷優先級不同,T0高于T1,這個搞清楚了,就明白了如何設計程序了。
作者: yermsir    時間: 2021-8-11 11:22
npn 發表于 2021-8-11 07:21
請配置中斷優先級控制寄存器 PT0、PT1。

我設置了PT1=1,PT0=0,還是沒有辦法解決問題喲。你看看怎么驗證才行?
作者: yermsir    時間: 2021-8-11 11:30
munuc_w 發表于 2021-8-11 08:29
程序設計思想有問題,第一,中斷服務程序要短小精悍,執行時間盡可能的短,不然,CPU在中斷中時間較長,其 ...

我設置了中斷優先級,寄存器PT1=1,PT0=0,還是不能轉動步進電機。這樣設置,即使正在相應T0的中斷函數,T1觸發時也會跳到T1中斷去執行,怎么還是不能轉動呢?
作者: yermsir    時間: 2021-8-11 16:08
本帖我已經找到了問題所在,是因為T0定時器初始化的問題,TMOD=0x01這個語句導致影響到T1的工作方式。T1工作方式本來想要是方式1,TMOD=0x10,但是T0初始化時TMOD又被賦值一遍TMOD=0x01,最終T1工作在方式0,定時的時間沒有按照預想的進行。
作者: rz12345    時間: 2021-8-11 16:17
要查問題,可以在軟件加一些標記,用硬件的發光管指示,看看程序怎么走的。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1