Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

rotary encoder deneme

Başlatan styx75, 28 Haziran 2014, 18:42:46

styx75

selam arkadaşlar .. rotary encoder ile yaptıgım denmeyi sizinle paylaşmak istedim kodları ve devrenin breadbroad çalışmasının youtube linki aşağıdadır.
programda portb değişiklik kesmesi ve rb0 kesmesi kullandım...ayrıca kesme içinde tuş bekletme ile başka bir etikete yönlendirdim.. gerçek ortamda hiçbir negatif durum gözlemlemedim..
iyileştirme adına değerli görüşlerinizi bekliyorum..
youtube linki    ROTARY ENCODER
Dim GITGEL As Word
Dim PORTB4 As Byte
Dim AYAR As Word
Dim OKUMA1 As Byte
Dim OKUMA2 As Byte
Dim DEGER As Word
Dim DERECE As Word
Dim DERECE1 As Byte
Dim DERECE2 As Byte 
Dim TEMP As Byte   
Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  Char    As Byte
GITGEL=0 
PORTB4=0
AYAR=0
GoTo BASLA
;--------------------
KESME:
Context Save
INT0IE=0
RBIE=0
PEIE=0
GIE=0
If RBIF=1 Then GoTo PORTBKESMESI
DelayMS 6
OKUMA1=PORTB
OKUMA2=OKUMA1                          
If OKUMA1.1^OKUMA2.0=1 Then
GITGEL=GITGEL + 1   
EndIf 
If OKUMA1.1^OKUMA2.0=0 Then
GITGEL=GITGEL - 1   
EndIf
PORTBKESMESI:
AYAR=0
If PORTB.4=0 Then 
PORTB4=PORTB4+1
While PORTB.4=0
AYAR=AYAR+1
If AYAR>2000 Then GoTo SERVIS
DelayMS 1
Wend     
EndIf 
INT0IF=0
RBIF=0
INT0IE=1
RBIE=1
PEIE=1
GIE=1
Context Restore


;----GİRİŞ-BLOGU-----------------
BASLA: 
GIE=0:PEIE=1:RBIE=1:INT0IE=1: GIE=1                             
    
Cls 
GoSub K 
DelayMS 500    
   
ANADONGU: 
GoSub SISI
Print At 7,0,Bin8 OKUMA1
Print At 6,0,Bin8 OKUMA2
Print At 3,0,Dec3 GITGEL
Print At 5,0,Dec PORTB4
GoTo ANADONGU

SERVIS:  
Cls
Print At 5,0,"AYAR"
DelayMS 1000 
PORTB4=0
INT0IE=1
RBIE=1
PEIE=1
GIE=1   

SERVIS2:
If PORTB4=1 Then  GoTo BASLA
High PORTE.0
DelayMS 25
Low PORTE.0
DelayMS 25  
GoTo SERVIS2

;---ALT-PROGRAM-BLOGU İPTAL----
SISI:
OWrite DQ , 1, [$CC, $44] 
OWrite DQ, 1, [$CC, $BE]           
ORead DQ, 0, [DEGER.LowByte, DEGER.HighByte]   
DERECE = DEGER */ 160:DERECE1=DERECE/10:DERECE2=DERECE //10 

;-------------------------------
 
K:
 For Ypos = 0 To 1
         For Xpos = 0 To 67
 
             Addr = (Ypos*68)+Xpos
             Char = CRead YTKO+Addr
             LCDWrite Ypos,Xpos,[Char]
         Next
     Next    
 Return
End  
Include "font.inc"
Include  "YTKO.inc"