Site icon elektromanyetix

Arduino Programlama Dili – Kesmeler ve Dış Kesmeler

Kesmeler ve Dış Kesmeler

Kesmeler ve Dış Kesmeler


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).

void setup() {}

void loop()
{
  noInterrupts();
  // kritik, zamana duyarlı kod burada
  interrupts();
  // diğer kod buraya
}

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.

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.


Exit mobile version