• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請教有Rotary Encoder(旋轉編碼器)的辨認方法或範例嗎?
#6
新會員
新會員


查看用戶資訊
謝謝..剛好想問有無組語的範例..

發表於: 2006/11/24 9:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教有Rotary Encoder(旋轉編碼器)的辨認方法或範例嗎?
#5
資深會員
資深會員


查看用戶資訊
我用的方式是加推高電阻
平常狀態為高準位
#DEFINE   EN_A1            PORTE,2                       ;旋轉式編碼器A相輸入
#DEFINE   EN_B1            PORTE,4                       ;旋轉式編碼器B相輸入

#DEFINE   EN1L          ENCODER,0                    ;定義編碼器逆時鐘旋轉旗標
#DEFINE   EN1R          ENCODER,1                    ;定義編碼器順時鐘旋轉旗標
#DEFINE   EN1F          ENCODER,2                    ;定義編碼器共同狀態旗標 A = 1 且 B = 0
#DEFINE   EN1S          ENCODER,3                    ;定義編碼器等待上下緣旗標

;比較編碼器AB相準位變換,上下緣觸發
CMP_ENCHG
          BSF     EN1F                  
;若A 1 且 B ,則設定偵測起點旗標
          BTFSS   EN_A1                 
;
          
BCF     EN1F                  ;
          
BTFSC   EN_B1                 ;
          
BCF     EN1F                  ;
;
編碼器1順向偵測
          BTFSC   EN1F                  
;
          
BSF     EN1S                  ;
          
BSF     EN1R                  ;EN1R
          BTFSS   EN1S                  
;
          
BCF     EN1R                  ;EN1R EN1S EN1B上緣
          BTFSS   EN_B1                 
;
          
BCF     EN1R                  ;
;
編碼器1逆向偵測
          BSF     EN1L                  
;EN1L EN1S EN_A1下緣
          BTFSS   EN1S                  
;
          
BCF     EN1L                  ;
          
BTFSC   EN_A1                 ;
          
BCF     EN1L                  ;
          
BTFSS   EN_A1                 ;(EN1S & (A上緣 或 B下緣))則清除 EN1S
          BCF     EN1S                  
;
          
BTFSC   EN_B1                 ;
          
BCF     EN1S                  ;

          
BTFSC   EN1R                  ;順時鐘,遞增
          CALL    ADDK                  
;
          
BTFSC   EN1L                  ;逆時鐘,遞減
          CALL    DECK                  
;
          RETURN

發表於: 2006/11/24 8:41
木亟缶夬金戔
彳艮缶夬金戔
走召缶夬金戔
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教有Rotary Encoder(旋轉編碼器)的辨認方法或範例嗎?
#4
新會員
新會員


查看用戶資訊
這是富士通MCU範例,您自行改成PIC
它是用中斷方式,在依狀態更改下次要正緣或負緣觸發

__interrupt void IRQ_RotaryEncoder(void)//
{
enc = PDR9 & 0x03; // read-encoder (INT0, INT1)
switch (enc_old)
{
case ENC_state00:
switch (enc)
{
case ENC_state01: enc_position++; ELVR_LA0 = 1; break;
case ENC_state10: enc_position--; ELVR_LA1 = 1; break;
case ENC_state00: enc_error++; ELVR_LA1 = 0; ELVR_LA0 = 0; break;
case ENC_state11: enc_error++; ELVR_LA1 = 1; ELVR_LA0 = 1; break;
}
break;
case ENC_state01:
switch (enc)
{
case ENC_state11: enc_position++; ELVR_LA1 = 1; break;
case ENC_state00: enc_position--; ELVR_LA0 = 0; break;
case ENC_state01: enc_error++; ELVR_LA1 = 0; ELVR_LA0 = 1; break;
case ENC_state10: enc_error++; ELVR_LA1 = 1; ELVR_LA0 = 0; break;
}
break;
case ENC_state11:
switch (enc)
{
case ENC_state10: enc_position++; ELVR_LA0 = 0; break;
case ENC_state01: enc_position--; ELVR_LA1 = 0; break;
case ENC_state11: enc_error++; ELVR_LA1 = 1; ELVR_LA0 = 1; break;
case ENC_state00: enc_error++; ELVR_LA1 = 0; ELVR_LA0 = 0; break;
}
break;
case ENC_state10:
switch (enc)
{
case ENC_state00: enc_position++; ELVR_LA1 = 0; break;
case ENC_state11: enc_position--; ELVR_LA0 = 1; break;
case ENC_state10: enc_error++; ELVR_LA1 = 1; ELVR_LA0 = 0; break;
case ENC_state01: enc_error++; ELVR_LA1 = 0; ELVR_LA0 = 1; break;
}
break;
}
enc_old = enc; // save new position
EIRR &= 0xf3; // clear ExternalInterruptRequest-Flags INT0, INT1
}

發表於: 2006/11/23 19:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教有Rotary Encoder(旋轉編碼器)的辨認方法或範例嗎?
#3
新會員
新會員


查看用戶資訊
請教各位:
不知有無辨認旋轉編碼器的範例或方法可供參考,要用來做旋鈕,又不想像用VR有轉到底限制的感覺,希望有這方面經驗的大大指導一下.

發表於: 2006/11/23 15:47
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------