STM32F4’te Timer Interrupt ile Alive Led Uygulaması

Alive LED kavramını Türkçe’ye Hayat Işığı diye tercüme etmeyi uygun buldum. Adından da anlaşılabileceği gibi Alive LED kullanmanın amacı işlemci içerisine yüklenen kodun sağlıklı çalışıp, çalışmadığını gözlemleyebilmektir. Eğer bu ışık 1 saniye boyunca yanık bir saniye boyunca da sönük olarak Toggle oluyorsa, işlemci içerisine yüklenilen kodun her hangi bir sıkıntı yaşamadığının göstergesidir. Yani işlemcimiz hayattadır ve sağlıklı bir şekilde çalışıyor demektir.

Read more

STM32F4’te External (Harici) Interrupt ile User Button Uygulaması ve Interrupt’ta Priority (Öncelik) Kavramı

User Button ile LED Toggle uygulamasının Interrupt kullanılmadan yapmıştık. Interrupt’sız Input’ların main fonksiyonu içerisinde kullanılması için programın yürütmesinde büyük sıkıntılar oluştuğunu açıklamıştım. Çünkü int main(void)‘in içindeki while(1){…} sonsuz döngü blokunun içinde while döngüsü kullanmamız gerekiyor veya flag kullanarak butona bastığımızda flag’ı 1’e eşitleyerek butona basıldığını anlayabilir ve de işlemimizi yaptıktan sonra flag‘ı tekrar 0 yaparak programın döngüde kalmasını engelleyebiliyor olsak da işlemcimiz butona bastığımız andan çok daha hızlı çalıştığı için bu çeşit bir metotta da sıkıntı yaşayabilirdik. En sorunsuz uygulama ise butona basıldığında ana programımızı çok kısa bir süreliğine Interrupt ile keserek, External Interrupt Handler ile butona basıldığında yapılması gerekenleri yapabiliriz. Bu şekilde programımız kaldığı yerden sorunsuz olarak çalışmaya devam etmiş olur.

Read more

Interrupt Kavramı ve STM32F4’te Interrupt Çeşitleri

Interrupt Kavramı

Sistem programlamada, Interrupt (Kesme) acil olarak dikkat edilmesi gereken bir olayın oluştuğunu gösteren donanım veya yazılım tarafından işlemciyi uyaran bir sinyal türüdür. Interrupt yürütülmekte olan kodun kesilmesini gerektiren High-Priority (yüksek öncelikli) durumdan ötürü işlemciyi uyarır. İşlemci, yürürlükteki faaliyetini Suspend ederek (askıya alarak), o anki State’ini (durumunu) koruyarak ve Interrupt Handler (veya  interrupt service routine, ISR) diye adlandırılan küçük bir programın yürütülmesini sağlayıp, olayla ilgilenerek yanıt verir. Bu Interrupt’ın geçici olduğunu bildirir ve Interrupt Handler’ın vazifesini bitirdikten sonra işlemci önceki Thread’in yürütülmesine devam ettirir.

Read more