如果在主循環里判斷次數和方向 除非你用一個片子專門去掃編碼器 否則 主循環時間不一定 有可能錯過 所以中斷是相對最可靠的 但中斷里不適于做防抖 即便是計時器防抖或者變量累加防抖 都有可能在第二個脈沖過來的時候沖突 如果處理沖突 又可能造成中斷內程序太多 那么理想的狀態就是中斷中得到的是確定脈沖 所以我認為編碼器的消抖用硬件消抖 單片機中斷計數 可以在中斷函數里用兩個標記分別對比以確定方向
硬件消抖實際上也有點缺點 要么容錯低 要么體積大 要么成本高 硬件消抖簡單的就是用個0.1uf電容 這方法是假定抖動會在十幾毫秒內 隨使用編碼器那東西會越來越接觸不良 到后期誤判很多 另一種是用門電路做消抖 我沒試過 但至少布線上要多一大坨東西 還有就是專門的消抖片子 有專門干這個的芯片 但那東西好貴啊 感覺很不值得
至于最終怎么弄 我認為主要是看速率 就是編碼器擰多快 如果1s擰一下 那無所謂什么方法了 最便宜最簡單的都不是問題 如果特別快 或者脈沖特別多的編碼器 講真 我覺得只能用專門的芯片 好象叫什么增量觸發之類的 專用芯片 也特別貴 當時就是看見價格直接就忽略了 |