6 Temmuz 2014 Pazar

ARM ile bir klasik LED YAKMA

herkese selam , ARM a bir başlangıç yapmıştık ve az çok ne ile ilgilendiğimiz hakkında bir fikir sahibi olabilmemizi sağlamıştı bu yazımız .
Şimdi de her yeni başlayanın ilk olarak yaptığı şeyi yani bir ledi yakmayı deneyelim .
Programımızda hazır fonksiyonlar yerine kendi kodlarımızla bir şeyler ortaya koymaya çalışsacağız diyerek başlayalım ;

Butona basıldığında led yansın elimizi çektiğimiz zaman led sönsün .
Bir algoritma oluşturacak olursak ;
İlk olarak giriş ve çıkışlarımıza clock vermemiz enable etmemiz gerekecektir,
İkinci adımda giriş ve çıkışlar için gerekli ayarları yapmamız gerekecek,
Daha sonra bir sonsuz döngü içerisinde " ' Butona  basıldı mı ? '  ifadesini kontrol edip eğer şartımız yerine geldiyse ledimiz yansın , gelmediyse led sönsün . " diyerek programımızı tamamlayabiliriz .

#include <stm32f4xx.h>

int main(void)
{
int i;
// 0000 0000 0000 0000 0011 0000 0000 0000
RCC->AHB1ENR=0x00000041;  // A ve G portlarini enable ettik, clock verdik .
GPIOG->MODER|=0x14000000;  // Ledlerimizin bağlı olduğu G13 ve G14 pinlerini çıkış olarak ayarladık.

while(1)
{
i=GPIOA->IDR&0x00000001;  //Aportuna bağlı pinlerin durumunu okuduk ve 01 ile lojik VE işlemine tabi tutarak A0 pini haricindeki değerleri maskeleyerek A0 pininin durumunu okuduk                                                                                      

if(i==0x00000001) GPIOG->ODR=0x00006000; //sart saglandiysa ledi yak

else GPIOG->ODR=0x00000000;                             // sart saglanmadiysa ledi söndür.
              }
}

bu şekilde stm32f429 geliştirme kitini kullanarak bir program yazmış olduk . Bu kitin Data sheet 'inden yaptığımız incelemelerle  hangi bacağa clock vermemiz gerekir ? , hangi bacak butonun baplı olduğu bacak ? gibi sorulara cevap verebildik ve bu bilgileri programda kullandık . Siz de kod yazarken bi tarafta data sheet 'i açık bulundurmayı alışkanlık haline getirmelisiniz . Aksi halde hata yapma olasılığı fazlacadır .
Soru ve eleştirileriniz için mstfylmz38@gmail.com 'a yazabilirsiniz . İlginize teşekkür ederim ,iyi çalışmalar.

Hiç yorum yok :

Yorum Gönder