PIC Komparator çıkışının durumuna göre kesme yapılabilir mi?

Başlatan ergün, 07 Mayıs 2018, 14:50:45

ergün

Merhaba arkadaşlar;

Pic komparator işlevi açıkken komparator çıkışına göre kesme yapabilir mi?

ete

Komparatör çıkışlarındaki konum değişikliği kesme yaratabilir.
PIE1.6 nolu bit ile INTCON.6 bitleri kesmeyi aktif eder.
PIR1.6 biti ise kesme oluşması için set edilen bayrak bitidir.
Kesme içinde sıfırlanmalıdır.
Bu söylediklerim 16F628 için geçerli bilgilerdir. İşlemci belirtmediğin için aklıma ilk gelen komparatörü olan işlemci olarak 16F628 üzerinden verdim bu bilgiyi. İŞlemci farklı ise data sheet den Comparator isimli bölümde her türlü bilgiyi bulabilirsin.

Ete

ergün

Verdiğiniz bilgiler için çok teşekkür ederim, bu sorudaki en büyük eksikliğimi görmüş oldum datasheet leri incelemeye başladım, komparatörler sürekli izleme yapıp flag ları loop döngüsü dışında değiştirebiliyorlar sanırım. 

ergün

Öncelikle özür dilerim kusuruma bakmayın lütfen, yazılım dili olarak MicroC kullandım fakat konuyu Pic Basic derslerinde açmışım,  regıster ları ayarlamayı deneyeyim dedim ama bir sorun var sanırım , kesmeye gittiğinde sürekli durum değiştiriyor. Denetleyici olarak 16f628 kullanıyorum.

ete

Komparatör kesmesini hiç kullanmadım. Bu nedenle denediğim bir şey değil. Data Sheet'e tekrar baktım.
Komparatör çıkışı değiştiği zaman CMIF=1 oluyor ancak bunu kesme içinde sıfırlamak için TEMP=CMCON şeklinde CMCON registerini okumak gerekiyormuş sanırım.
Direk kesme bayrağını sıfırlayarak sıfırlanmıyor anlaşılan bu nedenle bir kere kesme oluştumu bayrağı sıfırlayamadığın için sürekli kesmeye girip çıkıyordur program. Kesmeden çıkmadan önce TEMP=CMCON şeklinde kodu ekle ve tekrar dene bakalım.

Ete

ergün

Yardımlarınız için tekrardan teşekkür ederim sayın ETE, tamda düşündüğünüz gibi. Fakat TEMP =CMCON kodda yanlışlık yarattı, bende buradan yola çıkarak kesmenin hangi
durum ile oluştuğunu araştırdım. Komparator çıkışı PIR.CMIF bayrağına yönlendirilerek COUT değiştiğinde kesme oluşturacak şekilde düzenleniyor( 16f628 port diagram eki ). Kesme CMIF ile CMCON.COUT bitleri arasındaki anlık tutarsızlığa dayanıyor. dolayısı ile CMIF sıfırlanmadan önce COUT bayrakları temizlenmeli. Kodun çalışır hali ektedir, benim gibi sorun yaşayan arkadaşlara yardımı
olması dileği ve Saygılarımla.

MB_77

bu mesaj tarafımdan silinmiştir.

Powered by EzPortal