İnterrupts Elektrik- elektronik teknolojisinde nerelerde kullanılmakta ?

Başlatan atakhan, 11 Ağustos 2017, 21:21:16

atakhan

Arkadaşlar merhaba
Mikrodenetleyici konusunda pic c compiler  kullanarak  kendimi geliştirmeye çalışıyorum, kesmeler kısmındayım. İnternetten izlediğim videolar ve okuduğum kitaplardan, kesme mantığını azda olsa anladım diyebilirim. Ama sorun şu'ki bu kesmeleri elektrik elektronik alanında nerelerde kullanıyoruz? Yaptığım araştırmalarda, günlük hayattan örnekler verilerek (Film seyrediyorum,kapı çaldı,  pause tuşuna basarak filmi durdurup kapıyı açtım,  sonra geri gelip filmi kaldığı yerden izlemeye devam ettim)kesmenin temel mantığı anlatılmaya çalışılmış. Benim öğrenmek istediğim bu değil.

Örneğin ;  RB0 DIŞ KESMESİ
               RB4 -RB7 DEĞİŞİKLİK KESMESİ
               TMR0 KESMESİ

Bu kesmelerin her birine  nerelerde ve hangi amaçla kullanıldıklarına dair ayrı ayrı 3-4 örnek verebilirseniz, en azından gereksiz yere  kod öğrenmek zorunda kalmam. Cevaplarınız için şimdiden teşekkür ederim.

MrDarK

TMR0 Kesmesine Örnek;
Öyle bir işiniz olsun ki belli bir zaman periyodunda 1 kere mutlaka yapılmak zorunda olan durumda kullanabilirsiniz. Örn 7 segment kullandıysanız bilirsiniz çoklu 7 segment ile transistör anahtarlaması yaptığınızda "tarama metodu" ana programda gecikme yaşadığınız anda ekranda titreme görürsünüz. Bu tarz titremeleri hiç görmek istemiyorsanız anahtarlama periyoduna timer kurup int geldiğinde ana programdan çıkıp anahtarlamayı yapıp ana programa dönebilirsiniz. Bu sayede hiçbir zaman titreme oluşmayacaktır.

RB0 Kesmesi;
Buda konuda verdiğin örneğe yakın fakat ben bir örnek daha vereyim sana. Mesela bir motor uygulaması yapıyorsun ve Acil Durum butonu eklemeni istediler projeye. Bunu şu şekilde ekleyemezsin.

void main (void)
{
    Ana_Program_Kodu();
    Gecikme_Kodu();
    Motor_Surme_Kodu();
    Acil_Durumu_Butonu_Kontrol_Kodu();
}


Eğer acil durum butonun kontrolü çok önemliyse ki adı üstünde çok önemli bunu ana programının içine yazamazsın. Bu gibi durumlar için butonu RB0 kesmesine bağlaman durumunda birisi butona bastığında int oluşacağından ana programdan çıkıp motoru hemen o anda durdurabilirsin.

RB4 -RB7 DEĞİŞİKLİK KESMESİ
Buda RB0 ile aynı mantıkla kullanılabilir. Bunun tek farkı B4-B5-B6-B7'den herhangi biri 1 veya 0 olarak değiştiğinde int oluşturacaktır. Int fonksiyonunda hangi pinden sinyal geldiğini basit " if " sorguları ile öğrenebilirsiniz.

Anlamadığınız nokta olursa yine konuya yazabilirsiniz.
Picproje Eğitim Gönüllüleri ~ MrDarK

atakhan

  Teşekkür ediyorum. Vermiş olduğunuz örnekler konuyu  somut hale getirmeme yardımcı oluyor. Zamanla daha iyi olacağını umuyorum.

CaFFeiNe

RB4-RB7 kesmesi matris şeklinde dizilmiş tuş takımı okumada kullanılabiliyor mesela



zamzam23

RB4-7 kesmesi encoder okumada kullanışlıdır. A, B, A', B' gibi kanalları bağlarsınız ve sonuç alırsınız. Kesmelere fazla takılmayın ilerleyin derim. Konular ilerledikçe bütün içerisinde daha net anlaşılır birçok şey.


vardal57


mufitsozen

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.