Arduino Programlama Dili – Kesmeler ve Dış Kesmeler

with Yorum yapılmamış

Kesmeler ve Dış Kesmeler


Kesmeler:

interrupts()

Kesmeleri yeniden etkinleştirir (noInterrupts() tarafından devre dışı bırakıldıktan sonra).

Kesmeler, bazı önemli görevlerin arka planda olmasını sağlar ve varsayılan olarak etkindir.

Bazı işlevler kesmeler devre dışı bırakılırken çalışmaz ve gelen iletişim yok sayılabilir.

Bununla birlikte, kesmeler kod zamanlamasını hafifçe bozabilir ve kodun özellikle kritik bölümleri için devre dışı bırakılabilir.

nointerrupts()

Kesmeleri devre dışı bırakır (interrupts() yeniden etkinleştirebilirsiniz).

Dış Kesmeler:

attachInterrupt()

Dış kesmeler, Arduino’nun özel pinlerinde gerçekleşen voltaj değişimlerini takip eden kesmelerdir.

Örneğin Arduino’nun dış kesme pinine bağlanmış bir düğmeye basıldığında, dış kesme Arduino’ya otomatik olarak

haber verir. Bu kesme sayesinde Arduino sürekli olarak düğmeye basılıp basılmadığını kontrol etmek zorunda kalmaz,

bu sırada başka işlemleri yerine getirebilir.

Aşağıdaki tabloda Arduino türlerine göre dış kesme özelliğine sahip pinler gösterilmiştir.

Kart Kesme İçin Dijital Pin
 Uno, Nano, Mini, ve diğer 328 tabanlılar  2, 3
 Mega, Mega2560, MegaADK  2, 3, 18, 19, 20, 21
 Micro, Leonardo, other 32u4-tabanlılar  0, 1, 2, 3, 7
 Zero  4. pin hariç tüm dijital pinler.
 MKR1000 Rev.1  0, 1, 4, 5, 6, 7, 8, 9, A1, A2
 Due  Tüm dijital pinlar
 101  Tüm dijital pinlar

Söz dizimi (Syntax)

attachInterrupt (Dijital kesme pini (pin), ISR, mode); (Tavsiye edilen)
attachInterrupt (interrupt, ISR, mode); (Tavsiye edilmez)
attachInterrupt (pin, ISR, mode); (Sadece  Arduino Due, Zero, MKR1000, 101 için önerilmez)

interrupt: Kesme numarası (int)

pin: Pin Numarası (sadece Arduino Due, Zero, MKR1000) 

ISR: Kesme oluştuğunda ISR çağırır; Bu işlev parametre almayacak ve hiçbir şey döndürmemelidir.

Bu işlev bazen bir kesme hizmeti rutini olarak da adlandırılır.

mode: Aşağıda “attachInterrupt” fonksiyonu için tanımlanabilecek dış kesmelerin türleri belirtilmiştir.

  • LOW: Pindeki voltaj 0 ise kesme oluşur.
  • CHANGE: Pinde oluşacak voltaj değişimlerinde kesme gerçekleşir.
  • RISING: Yükselen kenarlarda kesme gerçekleşir. Yani pindeki voltaj değeri 0’dan 5 Volta çıktığında kesme gerçekleşir.
  • FALLING: Düşen kenarlarda kesme gerçekleşir. Yani pindeki voltaj değeri 5’ten 0’a düştüğünde kesme gerçekleşir.
  • HIGH: Pindeki voltaj 5 volt ise kesme oluşturur. (Sadece Arduino Due, Zero, MKR1000 )
Kart int.0 int.1 int.2 int.3 int.4 int.5
 Uno, Ethernet 2 3
 Mega2560 2 3 21 20 19 18
 32u4 tabanlı (ör. Leonardo, Micro) 3 2 0 1 7
 Due, Zero, MKR1000, 101 interrupt numarası = pin numarası

 

detachInterrupt()

Verilen kesmeyi kapatır.

Sözdizimi ve Parametlereler:

detachInterrupt(interrupt)
detachInterrupt(Dijital kesme numarası(pin));
detachInterrupt(pin) (Sadece Arduino Due, Zero )

interrupt: devre dışı bırakılacak kesme sayısı.

pin: devre dışı bırakılacak kesimin pin numarası. (sadece Arduino Due)


NOT: Buradaki bilgiler arduino.cc sitesinden Türkçeye çevrilmiştir.
Türkçe çevirinin tüm hakları saklıdır.
Bu web sayfası sadece link olarak paylaşılabilir.
Sayfada herhangi bir hata, öneri ve yorumlarınız için iletişim kurmanızı bekleriz.


[Toplam:2    Ortalama:5/5]

Bir Cevap Yazın