LED Yak – Söndür Uygulaması

          İlk uygulamamız mikrodenetleyici programlamaya başlangıç aşamasında klasikleşmiş olan led blinking uygulaması olacak. Unutmayalım ki her şey bir ledi yakıp söndürmek ile başlar bu dünyada. STM32F4DISCOVERY kitinde işlemcinin pinlerine bağlı olan 4 adet farklı renkte led bulunmakta. Bu ledler D portunun 12., 13., 14. ve 15. pinlerine bağlanmış bulunmaktalar. O yüzden ilk uygulamamızda D portunu çıkış olarak tanımlayacağız. ARM işlemcilerin PIC işlemcilerden bir farkı, her çevrebirim için saat kaynağını kendimizin kontrol edebilmesi. Bu sayede önemli ölçüde güç kaybı engellenmiş oluyor. Portları giriş çıkış için kullanabilmek için de onları besleyen saat frekansını aktif etmemiz gerekmekte.
Ayrıca giriş çıkış portları 4 farklı hızda çalıştırılabiliyor. Bu durum datasheette belirtilmiş. İsterseniz şimdi kodlarımıza göz atarak bahsettiğimiz şeylere daha yakından bakalım.

void main() {
char i=0;
GPIO_Digital_Output(&GPIOD_ODR, _GPIO_PINMASK_12 | _GPIO_PINMASK_13|_GPIO_PINMASK_14|_GPIO_PINMASK_15); //D portunun  12,13,14,ve 15. bitleri çıkış
while(1)
{
GPIOD_ODR=0x00001000; //GPIOD'nin 12. pini 1 yapılıyor.
for(i=0;i<3;i++)           //GPIOD'nin içeriği 3 kez sola kaydırılıyor, böylece 13,14 ve 15. pinler sırayla yanıyor.
{
Delay_ms(100);
GPIOD_ODR<<=1;
}
delay_ms(500);
for(i=0;i<3;i++) //GPIOD'nin içeriği 3 kez sağa kaydırılıyor, böylece 13,14 ve 15. pinler sırayla tersten yanıyor.
{
Delay_ms(100);
GPIOD_ODR>>=1;
}
delay_ms(500);
GPIOD_ODR=0;  //GPIOD'nin tüm pinleri sıfırlanıyor.
for(i=0;i<10;i++)
{
GPIOD_ODR=~GPIOD_ODR; //GPIOD 10 kez yakılıp söndürülüyor.
delay_ms(50);
}
}
}


          Bu kodlarda geçen GPIOD_ODR isimli register PORTD’nin değer yükleme registerıdır. Programımızı derledikten sonra , başka hiçbir araca veya programa gerek kalmadan , STM32F4DISCOVERY kitimizin üzerinde bulunan ST-LINK programlayıcı aracılığı ile hex kodumuzu KEİL üzerinden işlemcimize yükleyebiliyoruz. Bunun için “build and program” ikonuna tıklamamız yeterli. Tabiki mini usb aracılığı ile kitimizi bilgisayarımıza bağlamamız ve ST-LINK driverını yüklememiz şart.

Hiç yorum yok:

Yorum Gönder