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

Timer ve PWM’e Genel Bakış, STM32F4’de Timer ile PWM Çıkış Sinyali Oluşturma

ST’nin yayınladığı örneklerde Timer konusu üzerinde çok durulmamış. Birkaç örnek verilmiş fakat bu örnekler tam olarak açıklanmamış ve bazı kısımlarda görmezden gelinmiş. Bu sebeple Timer kodu yazdığım ilk zamanlarda sürekli hatalarla karşılaştım. Teoride çalışması gereken kod pratikte yanlış çalıştı. Örneğin 50 Hz’lik bir PWM sinyali üretmeye çalışırken 200 Hz’lik PWM sinyali üretmiş oluyordum. Uzun araştırmalar sonunda bunun clock ayarlarıyla alakalı olduğunun farkına vardım.

Read more

“system_stm32f4xx.c” Dosyasında Clock Ayarlarının Yapılması

system_stm32f4xx.c içeriğinde STM32F4xx için system clock ayarlamalarının yapıldığı dosyadır.

STM32F4 kodlamaya başladığım ilk zamanlarda bu dosyanın ne işe yaradığını pek bilmezdim. Timer kullanarak yaptığım bir kaç uygulamadan sonra aslında bu dosyanın gerçekten çok önemli olduğunu anladım. Bir çok yerde aradım ve bulması çok zor oldu. Özellikle Timer gibi süre gerektiren işlemlerde clock ayarları eğer yanlışsa belirlediğiniz süreçler de hatalar oluyor. Örnek verecek olursam, diyelim ki LED’i her saniyede bir yakıp söndürmek istiyoruz. Eğer bu dosya ayarları düzgün yapılmamışsa, LED’imiz saniyede bir değilde iki yanabiliyor.

Read more

STM32F4 User Button Kullanımı

Bilindiği gibi STM32F4’ün üzerinde User Button (Kullanıcı Butonu) bulunmaktadır. Kartın üzerinde bukunan LED’leri nasıl output olarak kullanabiliyorsak, bu butonu da input olarak kullanabiliyoruz. STM32F4’te projelerimizde kullanmak istersek diye, bu buton ile ilgili bir örnek kod yazıp paylaşmak istedim.

Yazacağımız kodda butona bastığımızda LED Toggle olsun. Yani SET ise RESET, RESET ise SET olsun. Bunun için bir adet GPIO’yu output olarak LED için tanımlamamız lazım. Bir de input için bir adet PIN ataması yapmamız lazım. Ama istediğimiz herhangi bir PIN’e atama yapamayız. Çünkü donanımsal olarak butonun ve LED’leri bağlı bulunduğu PIN’ler belli. Eğer STM32F4 geliştirme kartının üzerindeki buton ve LED’leri kullanmayıp da başka LED ve PIN’ler kullanmak isteseydik o zaman istediğimiz PIN’i kullanabilirdik.

Read more

STM32F4xx Standard Peripheral Library’e Genel Bakış

STM32F4’ü programlamak için registerlarla uğraşmak ve registerların içinde boğulup kalmak zorunda değiliz. ST bizim yerimize bu zahmetli işi çözmüş ve bir kütüphane oluşturmuş. Bu kütüphanede bulunan fonksiyonları kullanarak gerekli kart ayarlarımızı kolayca yapabiliyoruz. Bu kütüphanenin içinde bulunan source kodları aşağıdaki gibidir.

stdperiph_lib_src

Read more

STM32F4-Discovery Board’a Genel Bakış

stm

ARM işlemcilere merak duyan ya da kolayca öğrenmek isteyen arkadaşlara STM32F4-Discovery Board’u tavsiye ediyorum. Bu sebeple bugün bu kart hakkında genel bilgiler vermeye çalışacağım.

STM32F4-Discovery Board’u yeni başlayanlar için fiyatı da uygun bir kart. Çizgi-tagem tarafından ülkemizde de 19$ + KDV gibi uygun bir fiyata satılmaktadır.

STM32F4 DISCOVERY kartı ST firmasının STM32F4 seri işlemcisinin bir bakıma tanıtımını yapmak amacıyla meraklıların rahatça kodlayıp uygulamalar geliştirebilmesi için tasarladığı bir modelidir. Bu kart sayesinde insanların kendilerini rahatça eğitebilmelerini ve daha geniş projeler yaptıklarında bu işlemciyi kullanmalarına olanak sağlanması planlanmaktadır. Başlangıç seviyesindeki ya da ileri seviyedeki kullanıcıların ihtiyacı olabilecek ve hemen kod yazabilecekleri neredeyse herşeyi üzerinde bulundurmaktadır.

Read more

STM32F4-Discovery Board’u Keil uVision MDK-ARM ile Kodlama

images

Bu yazımda adım adım Keil uVision ile STM32F4 geliştirme kartını programlamayı anlatacağım. STM32F4 üzerinde bulunan LED’leri yakıp söndüren bir programı sıfırdan yazmayı planlıyorum ve Keil uVision’daki gerekli ayarlamaların nasıl yapılacağını resimli olarak adım adım göstermek isterim.

İlk olarak Keil uVision MDK-ARM programını indirip bilgisayarımıza yükleyelim. https://www.keil.com/ sitesinden biraz arayarak bulabilirsiniz. İndirince bir form karşınıza çıkar. Formu doldurarak Keil uVision MDK-ARM programını indirebilirsiniz. Programı bilgisayarımıza yükleyelim.

Read more