久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
12
返回列表 發新帖
樓主: lkc8210
打印 上一主題 下一主題
收起左側

一定位一脈沖的EC11旋轉編碼器最簡潔的單片機驅動代碼

  [復制鏈接]
41#
ID:433219 發表于 2023-9-22 19:34 | 只看該作者
一般方法:先判斷跳變(同時觸發抖動計時連續判斷),再判斷另一個io的高低,
回復

使用道具 舉報

42#
ID:965189 發表于 2023-9-22 23:34 | 只看該作者
我用一個外中斷,使用正常。
回復

使用道具 舉報

43#
ID:427868 發表于 2023-9-25 15:48 | 只看該作者
以下是我之前采用拿來主義得到的,只對判斷后執行部分稍作修改,應用還不錯。
/************************參數設置***************************/
void        canshu()                                //EC11旋轉編碼器一定位一脈沖
{
        static bit LastA = 0;                 //EC11旋轉編碼器的A引腳上一次的狀態
        static bit LastB = 0;                //EC11旋轉編碼器的B引腳上一次的狀態
               
  if(KA != LastA)                         //判斷EC11旋轉編碼器A引腳是否等于上一次的狀態
  {
    if(KA == 0)                                //EC11旋轉編碼器旋轉后,判斷KA是否是低電平狀態
         {
                if(KB)                         //判斷KB引腳當前狀態,高電平則為正轉
                        {num++;}                                                
                else
                        {num--;}                                                       
         }       
     LastA = KA;                         //更新編碼器上一個狀態暫存變量
     LastB = KB;                         //更新編碼器上一個狀態暫存變量
   }
}

現在看來LsaB變量似乎沒有用,有空了去掉它試試。對于正反向不同的EC11,我是通過調換num變量的加減方向來解決的。
回復

使用道具 舉報

44#
ID:378108 發表于 2023-9-28 09:49 | 只看該作者
haokey 發表于 2021-7-7 12:20
探討一下,假如我改成這樣會怎樣:
if(!PinA&&PinB)
{PinA_O= 1;}

你這樣是不行的,會重復的加或減
回復

使用道具 舉報

45#
ID:378108 發表于 2023-9-28 09:57 | 只看該作者
  unsigned char key=0;
  static bit nextA;
  if (KA()!=nextA)
    {nextA=KA();
      if (nextA==1)
        {if (KB()==1) key=6;else key=5;}
      else
        {if (KB()==0) key=6;else key=5;}
    }
return key;
回復

使用道具 舉報

46#
ID:1053178 發表于 2023-11-25 19:55 | 只看該作者
劉佑紅 發表于 2023-9-25 15:48
以下是我之前采用拿來主義得到的,只對判斷后執行部分稍作修改,應用還不錯。
/************************ ...

我跟你用的一樣,但是發現轉快了丟碼,慢很好
回復

使用道具 舉報

47#
ID:103411 發表于 2023-11-29 14:12 | 只看該作者
下載學習一下,正準備用這個一定位一脈沖編碼器。
回復

使用道具 舉報

48#
ID:427868 發表于 2023-11-29 15:01 | 只看該作者
diyage 發表于 2023-11-25 19:55
我跟你用的一樣,但是發現轉快了丟碼,慢很好

你說的這種情況,確實存在,也不能旋轉過快,且在部分EC11上表現明顯,即存在挑EC11現象,,后來我嘗試將KB對地接的104電容換成105的就改善了,也不挑EC11了,你可試試。
回復

使用道具 舉報

49#
ID:688905 發表于 2023-11-29 16:40 | 只看該作者
很好的優化方法,學習了!
回復

使用道具 舉報

50#
ID:471574 發表于 2023-12-14 17:37 | 只看該作者
樓主的代碼很不錯,我這邊有另一種算法,也很精簡EC11編碼器基于運算解碼的算法(原創),匯編后大小也基本一樣,有一個算法甚至更小
回復

使用道具 舉報

51#
ID:774081 發表于 2024-1-19 14:17 | 只看該作者
完美的代碼效果應該是轉動一下只計數一下,不能多增也不能不增,最重要的是!不論轉得多快還是多慢,都如此,那才是好代碼!從這個標準來說,我試驗了上10款作者自詡為非常不錯的代碼,均不合格!當然我自己也編不出合格的代碼來,一度懷疑是我買的EC11編碼器在硬件方面不合格,因為只有上拉電阻。沒有消抖電容。但符合這樣標準的編碼器效果是普遍存在的,比如十幾、二十年前的進口功放機,就采用了旋轉編碼器調整音量,那編碼器的使用效果才是我追求的,現在我的一個項目卡在編碼器上,怎么都不好用,肯定采用中斷來實現,還沒找到合適的代碼,下一步寄加消抖電容看看誰的代碼最理想,再來匯報。
回復

使用道具 舉報

52#
ID:1101997 發表于 2024-1-19 14:51 | 只看該作者
這東西還是需要用狀態機來寫,只要描述好正常狀態遷移的關系,異常狀態處理,硬件上消抖不消抖都是可以處理好的。
回復

使用道具 舉報

53#
ID:430492 發表于 2024-1-19 14:56 | 只看該作者
要想多快都不丟步(相對哈,快到中斷處理都來不及不算哈),必須在中斷里來處理。這種中斷+輪詢判斷的方式,依然會丟步的。
回復

使用道具 舉報

54#
ID:774081 發表于 2024-1-26 16:36 | 只看該作者
之前測試很多代碼,效果均不理想,表現為正轉、反轉有誤判,從而導致計數不對。我想到的辦法是得到方向數據后(比如正轉定義為1,反轉定義為0),先修正方向,再結合中斷和方向二者,決定是否累加或累減計數值。方案是建立一個數組,包括10個元素,用來存儲獲得的方向,任何時刻記錄的是最近十次獲得的方向數據,對數組的10個元素進行累加,和超過5時,強制為正方向,反之為負方向。實測效果有所改善,計數值絕不會忽大忽小、重復出現等情況了。遺憾的是如果你反復正轉、反轉1下,那計數還是會有問題,即不會保持不變。但這種使用場景很少見吧?真要微調,你多轉幾下,再反過來多轉幾下就行。有人會說,實際卡頓感與計數反映會不同步吧?理論上講是這樣,但單片機速度很快,實際感覺不到不同步。
回復

使用道具 舉報

55#
ID:119977 發表于 2024-7-2 17:06 | 只看該作者
個人做法是a下降沿中斷     中斷后   判斷b高低   確定正反轉
回復

使用道具 舉報

56#
ID:774081 發表于 2024-9-20 15:54 | 只看該作者
hewayking 發表于 2024-7-2 17:06
個人做法是a下降沿中斷     中斷后   判斷b高低   確定正反轉

試了,很棒!史上最簡潔的代碼。
回復

使用道具 舉報

57#
ID:471574 發表于 2024-9-27 08:22 | 只看該作者
http://www.zg4o1577.cn/bbs/dpj-233399-1.html
這個也是很簡潔,又新穎的EC11驅動
回復

使用道具 舉報

58#
ID:1143011 發表于 2025-1-16 12:31 | 只看該作者
bhjyqjs 發表于 2022-2-7 10:49
樓主代碼及其精簡,不錯!
實際上,只檢測A引腳的下降沿,由B引腳狀態決定加減更高效。
經實驗,無漏脈沖 ...

高手啊!
回復

使用道具 舉報

59#
ID:983641 發表于 2025-2-15 15:21 | 只看該作者
相當簡潔的代碼。需要時間消化。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一级一级国产 | 农夫在线精品视频免费观看 | www.男人天堂.com | 奇米超碰 | 欧美日韩黄 | 久久伊人影院 | 一区二区福利视频 | 欧洲精品视频一区 | 久久精品国产99国产精品 | 亚洲欧美另类在线观看 | 日韩高清中文字幕 | 99福利在线观看 | 日本 欧美 国产 | 午夜免费| 亚洲精品一区二 | 91中文视频 | 国产在线一区二 | 精品久久九九 | 中文字幕亚洲一区二区va在线 | 国产成人91视频 | 狠狠爱免费视频 | 久久九| 亚洲国产精品久久久久秋霞不卡 | 青青草av在线播放 | 日韩视频―中文字幕 | 欧美电影在线观看网站 | 99精品国产一区二区青青牛奶 | 九九热在线观看视频 | 麻豆国产精品777777在线 | 日韩色图在线观看 | 免费av一区二区三区 | 国产精品视频一二三区 | 亚洲一区二区网站 | 亚洲精品视频在线观看免费 | 日韩精品一区二区三区在线播放 | 亚洲久久 | 91视频一区二区 | 丁香久久| 国产美女精品视频 | 中文字幕精品一区二区三区精品 | 国产高清免费在线 |