avatar_mustafa

öneri

Başlatan mustafa, 03 Temmuz 2012, 11:58:28

mustafa

Merhaba arkadaşlar ;
Yapmam gereken şey indüktif sensörden rb0 a gelecek puls lar arası geçen süreyi bulmak. Buradan da yola çıkarak hız verisi elde edeceğim. Devre kısmını tasarladım onda sorun yok ancak program kısmına biraz hasta olduğum için kafamı verip odaklanamıyorum. Aslında yapmam gereken şeyi biliyorum. Yani bir rb0 kesmesi olduğunda timer 0 ı sıfırdan başlatıp birdahaki kesme oluncaya kadar saydırmak ve buradan hızı(2  puls arasının kaç cm e tekabül ettiğini biliyorum bu arada.) hesaplamak. Yapmam gereken şey bence bu ama işte dediğim gibi bir türlü kafamı toparlayamıyorum. Bu nokta da çözüm önerisi , örnek program vs elinde bu tip birşeyler olan arkadaş varsa benimle paylaşırsa sevinirim. İyi günler.

ete

RB0 kesmesi oluştuğu zaman;
T1CON=0:SURE.Byte0=TMR1L:SURE.Byte1=TMR1H
satırı ile TMR1 değerini SURE isimli değişkene aktaracaksın.

Kesmeden çıkmadan önce de,
T1CON=%00110001 :TMR1H=0:TMR1L=0
satırı ile yeniden TMR1 sayacını sıfırlayıp TMR1 i aktif edeceksin.
Bu komutlarda TMR1 için 1/8 bölme oranını kullandım En büyük bölem oranı budur. Bu ise her 8 puls da bir TMR1 sayacınınbir artacak demektir. Şayet iki kesme arasında gelen puls adedi 65535 den daha az olacak ise bölme oranını 1/1 alabilirsin.
Bunun için T1CON registerinin  5 ve 4 nolu bitlerini sıfır yapman yeterli olacaktır.

İşin sonrasında sure isimli değişkendeki değerleri bir şekilde kullanmaya kalıyor. Orasınıda sen hallet artık.
Hepsi bu kadar.

Ete

mustafa

Teşekkür ederim Erol Bey , programı inşallah kendimi iyi hisseder hissetmez tamamlayacağım . İyi günler dilerim.

Powered by EzPortal