![]() |
發布時間: 2021-8-11 20:48
正文摘要:我的想法是通過外部中斷來判斷脈沖數但轉動一次卻總是進入了兩次外部中斷,導致本來應該走一步的情況卻走了兩步。 中斷代碼大致如上 希望各位可以提供一些解題思路 |
樓主的儀器的確有些高大上 ![]() |
樓主的硬件和軟件都不對![]()
|
不知道你那是什么 EC11是這樣的: 使用定時器,1mS或者500uS判斷一下A和B的狀態 只要判斷哪個先出現低電平而已 如果是靜止狀態電平不固定,那就判斷哪個先出現電平變化 步數不同,方法也不同 |
在中斷中用while()是什么神仙寫法? 中斷是用來處理突發/快速的信號 所以中斷中的代碼越簡單越好 而消抖電路也好像有點問題 不轉時電容充滿當開路 SW_A點為5V 轉動時SW_A點接地,瞬間0V 電容對地放電 再轉多少少 SW_A點接不接地,電容開始充電當短路 于是SW_A點被兩個10k電阻分壓得2.5V產生第一次上升沿 電容慢慢充滿,電流減少,SW_A點電壓慢慢上升 型成第二次上升沿 參考一下別人的消抖電路吧 ![]() ![]() 另外如果轉動速度不快 可以不用中斷 詳情請參考我的貼子:一定位一脈沖的EC11旋轉編碼器最簡潔的單片機驅動代碼 |