Gönderen Konu: İnterrupts Elektrik- elektronik teknolojisinde nerelerde kullanılmakta ?  (Okunma sayısı 612 defa)

Çevrimdışı atakhan

  • Yeni Üye
  • *
  • İleti: 5
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.

Çevrimdışı MrDarK

  • Global Moderator
  • Profesyonel Üye
  • *****
  • İleti: 1521
  • Gelecekten geçmişe..
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.

Kod: [Seç]
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

Çevrimdışı atakhan

  • Yeni Üye
  • *
  • İleti: 5
  Teşekkür ediyorum. Vermiş olduğunuz örnekler konuyu  somut hale getirmeme yardımcı oluyor. Zamanla daha iyi olacağını umuyorum.

Çevrimdışı CaFFeiNe

  • Profesyonel Üye
  • *****
  • İleti: 1530
    • YAKE MAKİNA VE OTOMASYON
RB4-RB7 kesmesi matris şeklinde dizilmiş tuş takımı okumada kullanılabiliyor mesela



Çevrimdışı zamzam23

  • Profesyonel Üye
  • *****
  • İleti: 1217
  • Olgunlaşmak, hiçbir şeye şaşırmamaktır.
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.


Çevrimdışı vardal57

  • Müdavim
  • ***
  • İleti: 65
Kesme olmadan bir işlemci düşünülemez hep lazım hep...

Çevrimdışı mufitsozen

  • Profesyonel Üye
  • *****
  • İleti: 1464
  • mufitsozen@gmail.com
Kesme olmadan bir işlemci düşünülemez hep lazım hep...
+1
Dünyanın en büyük sorunu, aptallar özgüven içindeyken akıllı insanların kuşkuyla dolu olmasıdır.

Çevrimdışı selimkoc

  • Kıdemli
  • ****
  • İleti: 453
    • Elektronik ve Robotikle ilgili blog
Zamanlayıcı olarak kullanılabilir. Örnek: https://elektrokod.wordpress.com/2013/10/18/timer0-zamanlama-uygulamasi/

Sayıcı olarak kullanılabilir. Örnek :https://elektrokod.wordpress.com/2013/10/17/timer0/