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