Mikrodenetleyiciler ile mikroişlemciler arasında ki en büyük fark mikrodenetleyicilerin RAM, ROM, CPU, portlar gibi bütün birimleri bir aradadır. Mikrodenetleyiciler kod sırasını takip ederek tek bir işlemi gerçekleştirirler. Mikrodenetleyicilerin bu dezavantajını ortadan kısmen kaldırmanın tek yolu interrupt yani Türkçe ismi ile kesme kullanılmasıdır.

İnterrupt kullanımının basit bir dille izahı şöyledir;

Bir kişi televizyon izlerken kapı çalarsa televizyon izleme işini keser ve kapıyı açıp, tekrar televizyon izlemeye devam eder. Bu da interrupt’ın işleyiş mantığını anlatan basit bir örnektir.

Ancak belirtilmelidir ki mikrodenetleyicilerde ki her bacak interrupt bacağı değildir ve interrupt bacakları sınırlı sayıdadır. Ayrıca programlarken interruptlar arasında da öncelik sıralaması yapılması gereklidir ki, devreniz ve programınız sağlıklı çalışabilsin.

Arduino da İnterrupt Kullanımı

 

Arduino kullanıcılarının pek çoğu ne yazık ki interrupt kullanmayı bilmezler hatta interrupt’ın varlığından dahi haberdar değillerdir. Bu nedenle de programlarını kısıtlı olarak programlamak ve devrelerini ona göre dezavantajlı şekilde oluşturmaktadırlar. İşinde iyi bütün elektronikçiler bilir ki  interrupt kullanımı mikrodenetleyiciler için çok kritiktir.

Arduino kartlarında ki interrupt kullanımlarının tamamı aynıdır. Ancak bilinmesi gereklidir ki her Arduino kartın interrupt bacakları farklıdır, bu bilgiye ulaşmak için Arduino kartının üstünde ki mikrodenetleyicinin datasheetine bakabilir, bir dakikadan kısa sürede bu bilgiye ulaşabilirsiniz.

Arduino kartlarının birkaçının interrupt bacakları aşağıda ki gibidir;

Untitled

Arduinoda İnterrupt Kullanımı Örnek Kod[sociallocker id=”10094″]

[/sociallocker]

Yukarı da ki kodun çok daha kompleks olanını bir diğer yazıda, daha detaylı şekilde bir başka anlatacağım.

Neden İnterrupt Bu Kadar Kritik Öneme Sahiptir?

Özellikle buton içeren, kritik öneme sahip pin işlevlerinde, uzun yazılıma sahip devrelerde ya da düşük hızda mikrodenetleyicilerde öncelik tanımak yaptığınız devreyi oldukça verimli kılar. Bu nedenle de interrupt kullanmaya özen gösterirseniz daha başarılı devreler oluşturabilirsiniz.

True C olarak geçen Atmel AVR programlama da interrupt örneğini ve daha detaylı bir Arduino interrupt yazılımını sizler için kaleme alacağım. Mikrodenetleyicilerin en önemli özelliklerini etkin kullanmak her zaman için avantaj sağlamaktadır.

  • Elinize sağlık yazınız güzel olmuş. Fakat bir noktada yanlış var. Mikroişlemciler de aynı anda tek işlem yapabilirler. Kesmeler mikroişlemciler için kullanılır. Mikro denetleyiciler de RAM ve Mikroişlemciden oluşur. FPGA gibi mimarisi serbest ve birbirinden bağımsız transistörlerden oluşan gömülü sistemler paralel işlem yapabilme özelliğine sahiptir sadece.

    • Çalışma mantığı olarak anlatmıştım ancak mikrodenetleyiciler mimarisi gelişmemiş RAM ve mikroişlemciden oluşur. Bir başka söylemle mikroişlemcileri programlamak için hafıza tasarımını bilmek, harici hafızaya yani ihtiyaç duyulan RAM ile birlikte çalıştırmak gereklidir. Dediğiniz gibi aslında yazıda o noktada hata olmuş ve şuan düzeltiyorum. Anlatmak istediğim ile anlattığım biraz farklı olmuş.

      İlginiz için teşekkür ederim.