熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2021-8-11 20:48
正文摘要:我的想法是通過(guò)外部中斷來(lái)判斷脈沖數(shù)但轉(zhuǎn)動(dòng)一次卻總是進(jìn)入了兩次外部中斷,導(dǎo)致本來(lái)應(yīng)該走一步的情況卻走了兩步。 中斷代碼大致如上 希望各位可以提供一些解題思路 |
樓主的儀器的確有些高大上 ![]() |
樓主的硬件和軟件都不對(duì)
|
| 參與人數(shù) 1 | 黑幣 +10 | 收起 理由 |
|---|---|---|
|
| + 10 |
|
不知道你那是什么 EC11是這樣的: 使用定時(shí)器,1mS或者500uS判斷一下A和B的狀態(tài) 只要判斷哪個(gè)先出現(xiàn)低電平而已 如果是靜止?fàn)顟B(tài)電平不固定,那就判斷哪個(gè)先出現(xiàn)電平變化 步數(shù)不同,方法也不同 |
|
在中斷中用while()是什么神仙寫法? 中斷是用來(lái)處理突發(fā)/快速的信號(hào) 所以中斷中的代碼越簡(jiǎn)單越好 而消抖電路也好像有點(diǎn)問(wèn)題 不轉(zhuǎn)時(shí)電容充滿當(dāng)開(kāi)路 SW_A點(diǎn)為5V 轉(zhuǎn)動(dòng)時(shí)SW_A點(diǎn)接地,瞬間0V 電容對(duì)地放電 再轉(zhuǎn)多少少 SW_A點(diǎn)接不接地,電容開(kāi)始充電當(dāng)短路 于是SW_A點(diǎn)被兩個(gè)10k電阻分壓得2.5V產(chǎn)生第一次上升沿 電容慢慢充滿,電流減少,SW_A點(diǎn)電壓慢慢上升 型成第二次上升沿 參考一下別人的消抖電路吧
另外如果轉(zhuǎn)動(dòng)速度不快 可以不用中斷 詳情請(qǐng)參考我的貼子:一定位一脈沖的EC11旋轉(zhuǎn)編碼器最簡(jiǎn)潔的單片機(jī)驅(qū)動(dòng)代碼 |
| 參與人數(shù) 1 | 黑幣 +40 | 收起 理由 |
|---|---|---|
|
| + 40 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)