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