|
發(fā)布時間: 2021-8-10 22:33
正文摘要:用的吳鑒鷹的板子,我自己編寫了一個用數(shù)字旋轉(zhuǎn)編碼器來選擇步進(jìn)電機(jī)運(yùn)行方式的程序。旋轉(zhuǎn)編碼器為1,步進(jìn)電機(jī)就轉(zhuǎn)1圈;旋轉(zhuǎn)編碼器為2,步進(jìn)電機(jī)就轉(zhuǎn)2圈;旋轉(zhuǎn)編碼器為3,步進(jìn)電機(jī)就轉(zhuǎn)3圈。旋轉(zhuǎn)編碼器的數(shù)值是在數(shù)碼 ... |
| 要查問題,可以在軟件加一些標(biāo)記,用硬件的發(fā)光管指示,看看程序怎么走的。 |
| 本帖我已經(jīng)找到了問題所在,是因?yàn)門0定時器初始化的問題,TMOD=0x01這個語句導(dǎo)致影響到T1的工作方式。T1工作方式本來想要是方式1,TMOD=0x10,但是T0初始化時TMOD又被賦值一遍TMOD=0x01,最終T1工作在方式0,定時的時間沒有按照預(yù)想的進(jìn)行。 |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎勵! |
munuc_w 發(fā)表于 2021-8-11 08:29 我設(shè)置了中斷優(yōu)先級,寄存器PT1=1,PT0=0,還是不能轉(zhuǎn)動步進(jìn)電機(jī)。這樣設(shè)置,即使正在相應(yīng)T0的中斷函數(shù),T1觸發(fā)時也會跳到T1中斷去執(zhí)行,怎么還是不能轉(zhuǎn)動呢? |
npn 發(fā)表于 2021-8-11 07:21 我設(shè)置了PT1=1,PT0=0,還是沒有辦法解決問題喲。你看看怎么驗(yàn)證才行? |
| 程序設(shè)計思想有問題,第一,中斷服務(wù)程序要短小精悍,執(zhí)行時間盡可能的短,不然,CPU在中斷中時間較長,其它任務(wù)得不到CPU的服務(wù);第二,T0,T1的中斷優(yōu)先級不同,T0高于T1,這個搞清楚了,就明白了如何設(shè)計程序了。 |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎勵! |
| 請配置中斷優(yōu)先級控制寄存器 PT0、PT1。 |
Powered by 單片機(jī)教程網(wǎng)