0Pricing
Arduino & IoT Academy · Ders

Güvenli Bir ISR Yazın

Kesme işleyicilerini kısa tutun ve volatile kullanın.

Güvenli Bir ISR Yazın, CoddyKit'te ücretsiz bir Arduino & IoT Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Arduino & IoT Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Arduino & IoT Academy kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

A Special Function

An ISR, or interrupt service routine, is the function that runs when an interrupt fires. It has rules that ordinary functions do not.

Keep It Short

The golden rule: make your ISR as short as possible. The main program is paused while it runs, so finish fast and get out.

Do the Heavy Work Later

Inside the ISR, just set a flag or bump a counter. Let the loop do the slow work like printing or math once it sees the flag.

void myISR() {
  pressed = true;
}

Shared Variables

An ISR and your loop both touch the same variable. The compiler may not expect it to change behind the loop's back, which causes subtle bugs. 🐞

The volatile Keyword

Mark any variable shared with an ISR as volatile. It tells the compiler the value can change at any moment, so always reread it.

volatile bool pressed = false;

No delay Inside

Never call delay in an ISR. The timing that delay needs is itself paused during an interrupt, so it simply will not work.

Serial Is Risky Too

Avoid Serial.print inside an ISR. It relies on interrupts that are blocked while your handler runs, so output can stall or garble.

millis Freezes

Inside an ISR, millis stops advancing because its background counting is paused. Read elapsed time in the loop, not the handler.

Handle the Flag in Loop

Back in the loop, check the flag, act on it, then clear it. This is where the real response safely takes place.

if (pressed) {
  pressed = false;
  handlePress();
}

Reading Multi-Byte Values

When the loop reads a multi-byte volatile value an ISR updates, briefly disable interrupts so you get a clean, unsplit number.

noInterrupts();
long c = count;
interrupts();

Why These Rules Matter

Follow these rules and your ISR stays fast and predictable. Break them and you get freezes, lost data, or values that never seem to update.

Quick Check

Why must a variable shared between an ISR and the loop be marked volatile?

Recap

You learned to keep an ISR short, mark shared data volatile, skip delay and Serial, and do the real work back in the loop. 🎉

Sıkça Sorulan Sorular

“Güvenli Bir ISR Yazın” dersi ücretsiz mi?

Evet — “Güvenli Bir ISR Yazın” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Arduino & IoT Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Arduino & IoT Academy kursu toplamda 4 dersten oluşur.

“Güvenli Bir ISR Yazın” dersinde ne öğreneceğim?

Kesme işleyicilerini kısa tutun ve volatile kullanın. Arduino & IoT Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Arduino & IoT Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Arduino & IoT Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Güvenli Bir ISR Yazın” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Arduino & IoT Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Arduino & IoT Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yoklama ve Kesintiler
  2. Bir Uçta attachInterrupt
  3. Güvenli Bir ISR Yazın
  4. Kodlayıcıdan Gelen Darbeleri Sayın
← Arduino & IoT Academy Sayfasına Dön