Arduino Programlama Dili – Kesmeler ve Dış Kesmeler

0
4021
Okunma

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.

KartKesme İç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 )
Kartint.0int.1int.2int.3int.4int.5
 Uno, Ethernet23
 Mega25602321201918
 32u4 tabanlı (ör. Leonardo, Micro)32017
 Due, Zero, MKR1000, 101interrupt 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.


CEVAP VER

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.