Devir okuyucu (RPM) yardım

Başlatan tosun54, 23 Nisan 2014, 09:34:59

slayizm

Öncelikle şunu unutma ki kullandığın mikroişlemci ardışık (sequential) işlem yapar. Yani yazdığın programda bir satırın işlemini yapar o bitince alt satıra (veya kesme olmuşsa o adrese) geçer. Yani her seferinde aynı anda sadece 1 iş yapılır. Sen ise aynı anda 2 iş yapmaya çalışıyorsun. Hem devir okumaya hem de display sürmeye çalışıyorsun. Benim tavsiyem 2 timer kullanman. Motor pulse i okumak için RB0 kesmesi kullanabilirsin veya kendin bir kenar detektörü fonksiyonu yazabilirsin. timer 1'i 1 sn olacak şekilde ayarlarsan saydığın sayının 60 katı senin rpm in olur. 2. timer'ı da 20 ms ye ayarlarsan her kesmede sürdüğün 7 segmenti değiştirebilirsin. Main fonksiyonunda o anki sürdüğün 7 segment digitine rpm in o basamağını göndereceksin sadece. Yalnız aynı anda 2 kesme olmayacağından timer kesmelerine mümkün olduğu kadar az komut yaz ki devir hatasını en aza düşür.
İyi çalışmalar.

Maxim

aynen
count komutu ile dogru duzgun olcum yapamazsiniz. yani hassas birsey cikmaz.

interrupt ve timerli cozumlere yonelin

ete

Bu programla bu devreninçalışması elbette mümkün değil.
Yapılacak en akıllıca şey şu olurdu,
- Zamanı TMR1 sayacına saydırarak  ana program bölümünde sayma ve ekrana gönderme işi halledilmeli.
- Puls sayımı için PORTB.0 kesmesi kullanılmalı ve aynı kesme içinde ayrıca TMR0 kesmesi ile displaylar sürülmelidir.

İlişikte bu söylediğimi uyguladığım bir sistem veriyorum. PULS girişini kare dalga şeklinde sinyal jeneratöründen sağladım. Aynı yere siz puls üreteci çıkışını bağlarsınız.

Display kesmesi her 1000 us ile 500us arasında bir değere ayarlanabilir. Ben 800 yaptım. Bu hali ile tatmin edici gibi gözüküyor. Gerçek devresinde de denemek lazım.

Ete


est32

Timer konusunda açıkçası pek tecrübem yok ve de hesaplamaları yüzünden hep kaçındığım bişeydi. Bu nedenle elimin altında somut olarak malzemeler bulunmadan da denemelerine girişemeyeceğimden bunu söylemek için gelmiştim ama ETE hoca koşmuş yardıma ve ben de hemen örneğini kaydettim.
Arkadaşı yarı yolda bırakmış gibi göründüm ama iş hesaplamaya girince benim de zorlanacağım ve kendi bitirmem gereken proje yüzünden zaman ayıramayacağim birşeydi. teşekkür ederim ete hocam

tosun54

sayın ete hocam vermiş olduğunuz örnek program devrede çalıştı. Yapmış olduğunuz katkılardan dolayı sayın ets32 ve siz ete hocama çok teşekkürler ederim.

Powered by EzPortal