avatar_elektro77

rotary encoder dönüş yönü belirleme

Başlatan elektro77, 20 Eylül 2018, 12:08:26

elektro77

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#31
bu mesaj tarafımdan silinmiştir.

elektro77

#32
size bahsettiğim dönüş yönü her değiştiğinde osiloskop grafiği linktedir.
1.opto çıkışı aynı açı da sürekli sabit. fakat 2.opto çıkışı sağa dönüşte 90 derce öne
sola dönüşte ise 90 derece arkaya geçiyor.
Bu ne anlama geliyor.
Yazılımın dönüş yönü belirleme kodlarında azaltmaya gidilebilirmi bu sayede
https://www.youtube.com/watch?v=9M6wgBLx4dM&feature=youtu.be
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#33
bu mesaj tarafımdan silinmiştir.

elektro77

#34
16f1827 deki bu kesmeler 16f876 veya 877 de nasıl aktif edilir.
intcon=%11001000    'kesmeler aktif edildi.  portb değişiklik kesmesi aktif
IOCBP=%01100000     'sensör pinleri için yükselen kenar kesmesi aktif
IOCBN=%01100000     'sensör pinleri için düşen kenar kesmesi aktif

ve aşagıdaki sizin bu komutları 876 veya 877 ye aynen yerleştirsem
çalışırmı.
çünki 1827 de derleme yapamıyorum.

kesme:
disable
intcon.7=0       
intcon.6=0

if intcon.0=1 then    'değişiklik kesmesi oldu
By=1        'değişiklik oldu sonuç LCD'de yazdırılacak bayrağı aktif.

if portb.6=1 then   'sensör 1 high ise
Sa=1                'RB6'ya bağlı sensor1'in lojik durumu değişkene 1 olarak kaydedildi
    if portb.5=1 then    'sensör 2 high ise
    Sb=1            'RB5'e bağlı sensör2'nin durumu kaydedildi
    Ta=1            'iki sensör de high. durum 1 olarak kaydedildi.
    else            'sensör2 low ise
    Sb=0
    Ta=2            'durum 2 olarak kaydedildi.
    endif
else         'sensör1 low ise
Sa=0
    if portb.5=1 then    'sensör 2 high ise
    Sb=1
    Ta=4        'değişkene 4 olarak kaydedildi.
    else         'sensör2 low ise
    Sb=0
    Ta=3         'durum 3 olarak kaydedildi.
    endif
endif
'buraya kadar sensörlerin durumu ne ise Ta değişkenine kaydedildi

'durumların matematiksel işlemden faydalanarak aşağıdaki gibi yön belirlenir ve sayaca kaydedilir.

Th=Tg-Ta        'yön belirleme koşullarında kullanmak üzere fark alınıyor

if Th=255 or th=3 then   'ileri dönüşte Ta durum değişkeni 2,3 ve 4 değeri aldığında Th 255 olacaktır.
    yon=1    'ileri dönüyor işareti (ileri geri yönleri görecelidir. sensör yerleşimine bağlıdır)
    if syc=65535 then
    e=0               'sayacın son değeri 65535, yeni değeri 0 olacak eksi bayrağı silindi.
    endif
    syc=syc+1
else        'diğer durumları hesaplamaya gerek yok çünkü yukarıdaki koşullar gerçekleşmezse diğer yön de dönüyor demektir.
    Yon=2       'geri dönüyor işareti
    if syc=0 then     'sayacın son değeri 0, yeni değerde eksiye düşecek bayrağı aktif
    e=1
    endif
    syc=syc-1
endif
tg=ta   'bir sonraki kontrolde şu andaki durum geçmiş durum olarak kullanılacak

IOCBF=0  'portb değişiklik kesme bayrağı sıfırlandı.
endif
intcon=%11001000
enable
return



"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#35
bu mesaj tarafımdan silinmiştir.

MB_77

#36
bu mesaj tarafımdan silinmiştir.

elektro77

O hatayi ben görmüştüm zaten. derleyemiyorumki duzelteyim.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#38
Niye kaynak olarak cok az yazilim olmasina ragmen 16F1827 kullandiniz. Baska picmi yoktu. Dahili osilator Hizi ve hafizasimi mi sizi etkiledi.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

Elimde f876 ve 877 den baska pic bile yok
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#40
Biz acemi kullanicilariz daha basit ve kaynagi bol olan bir picle ornek verebilirdiniz.
Derleyicim bu picin disinda tum piclerle calisiyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

Yinede yardimlariniz ve vakit ayirdiginiz icin minnet duyuyorum.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#42
bu mesaj tarafımdan silinmiştir.

MB_77

#43
bu mesaj tarafımdan silinmiştir.

MB_77

#44
bu mesaj tarafımdan silinmiştir.

Powered by EzPortal