İPUCU

Donanım Bilgisayar Donanımı İle İlgili Yardımlaşma Bölümümüz ...

Seçenekler

Stellaris LaunchPad-GPIO ve Proje Oluşturma

'iMuh@fiz - ait Kullanıcı Resmi (Avatar)
Özel Üye
Üyelik tarihi:
08/2012
Nereden:
Bakü
Yaş:
26
Mesajlar:
11.214
Konular:
4118
Teşekkür (Etti):
1199
Teşekkür (Aldı):
1250
Ticaret:
(0) %
18-07-2013 10:07
#1
Stellaris LaunchPad-GPIO ve Proje Oluşturma
Bu yazımızda geçen yazımızda bahsettiğim Stellaris Launchpadin desteklediği iki derleyici ile proje oluşturup Gpio birimlerini inceleyeceğiz.Yazımızda yine çokça başvuracağımız işlemci datasheetini buradan indirebilirsiniz.Yazımızda öncelikle CCS ortamında bir proje oluşturup çalıştıralım.Ardından Keil derleyicisinde bir proje oluşturup GPIO birimlerini inceleyelim.CCS ortamında proje oluşturmak diğer oluşturduğumuz projelerden bir kaç nokta itibari ile farklılık gösteriyor.İlk önce CCS sürümü olarak Stellaris LaunchPad için version5.2′yi kullanmamız gerekmekte.Örneğin bir üst versiyonda path ayarlarını yaptığımız halde program derlenmiyor.İlgili CCS sürümünü buradan indirebilirsiniz.Texsas mühendislerinin Stellaris için oluşturdukları PDF ve Lab kurulumu için bu siteyi ziyaret edebilirsiniz.Kuracağınız lab çalıştırılabilir programın içerisinde on tane proje bulunmakta bu projelerde stellaris için oluşturulmuş kütüphaneler bulunmakta ilk aşamada çok faydalı ****ryaller.İleri seviye içinde indirdiğiniz CCS dosyasındaki StellearisWare adlı çalıştırılabilir program içerisinde örnekler bulunmakta.Bu yazıda ikisinede örnek vereceğiz.İlk örneğimizde yukarıdada bahsettiğim gibi CCS ortamında kısmen oluşturulmuş bir proje ile çalışacağız,ikinci uygulamamızda keil ile proje oluşturacağız. CCS ile Projemizi Oluşturmaya Başalayalım
1.Adım ile File>New>CCS Project yolunu takip ediyoruz

2.Adım ile Path ayarlarını yapıyoruz

3.Adım ile Driver kütüphanesini ekliyoruz

Artık bu aşamadan sonra kodlarımızı yazıp derleyebiliriz.
Gpio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" int main(****) { int LED=0x0E; SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSC TL_XTAL_16MHZ|SYSCTL_OSC_MAIN); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); while(1) { GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED); SysCtlDelay(2000000); GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,0x00); SysCtlDelay(2000000); } }

Uygulamanın videosu
CCS ile projemizi oluşturmayı bitirdik şimdi Keil derleyicisi ile Stellaris için bir proje oluşturalım.
1.Adım ile Project>New qVision Project yolunu takip ederek projemizi oluşturuyoruz.
2.Adım ile Projemizi kaydediyoruz.
3.Adım ile Keil bize hangi işlemci ile çalışacağımızı soruyor işlemcimizi seçip ok diyoruz
Ardından Startup dosyasını oluşturup projeye ekliyim mi? diye soruyor ok diyoruz.
Bu aşamadan sonra projemize bazı dosyalar eklememiz gerek.İlk önce program kodlarımızı yazacağımız .c dosyamızı ekleyelim.
File>New ile boş bir dosya açıp Gpio.c olarak kaydedelim.
Ardından projemizin sol tarafında bulunan Project kısmındaki Source Group1′e sağ tıklayıp az önce kaydettiğimiz dosyayı ekleyelim.

Kodlarımızı yazacağımız bölümü oluşturduk fakat işlemcimizin gerekli bilgileri şu anda eksik bu haliyle projemizi çalıştırdığımızda daha ilk satırda hata verecek.Bu hatayı önlemek için gerekli kütüphaneyi eklemeliyiz bu yol biraz meşakatli olabilir ama bazı noktaları daha iyi kavramımız sağlayacaktır.
Tekrar File>New yolunu takip ederek boş bir dosya açıyoruz ardından bu linkteki kodları lm4f120h5qr dosyanın içine kopyalayıp kaydediyoruz.Yukarıdaki yöntemle Proje dosyasına kaydettiğimiz dosyayı ekliyoruz.Kaydettiğimiz dosyada İşlemcinin regester ve diğer bilgileri mevcut ve benim çok hoşlandığım sayı sistemi ile oluşturulmuş vaktiniz olursa göz atmanızı tavsiye ederim.
Project kısmının aldığı son durum böyle olmalı.

Ardından Projemiz için bazı ayarlar yapmamız gerekecek.Bunun için project kısmından projeye sağ tıklayıp>Options for Target yolunu takip ediyoruz.
İlk olarak Target kısmında clock ayarını 8 Mhz olarak belirliyoruz.
Ardından C/C++ kısmını aşağıdaki gibi ayarlıyoruz.

Debug kısmını aşağıdaki gibi ayarlıyoruz

Utilities kısmınıda aşağıdaki gibi ayarlıyoruz.

Burada ben settings özelliklerine değinmedim ama dilerseniz buradaki özellikleri inceleyebilirsiniz.Artık kodlarımızı oluşturmaya başlayabiliriz.Burada kodlarımızı yazıp çıktılarını gözlemledikten sonra datashetimizden aldımız bilgileri inceleyerek kodalarımızı anlamaya çalışacağız.
Gpio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include "inc/lm4f120h5qr.h" int main(****) { volatile unsigned long ulLoop; SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF; ulLoop = SYSCTL_RCGC2_R; GPIO_PORTF_DIR_R = 0x0E; GPIO_PORTF_DEN_R = 0x0E; while(1) { GPIO_PORTF_DATA_R |= 0x0E; for(ulLoop = 0; ulLoop < 200000; ulLoop++) { } GPIO_PORTF_DATA_R &= ~(0x0E); for(ulLoop = 0; ulLoop < 200000; ulLoop++) { } } }

Kodlarımızı 5.Satırdan itibaren incleyelim, burada GPIO ve timer brimi için bir değişken tanımlıyoruz.
7.Satırda kullanacağımız regesterı seçiyoruz.Bu regesterlar ile ilgili daha fazla bilgi için işlemci datasheetine bakıyoruz.
Yazdığımız kodlardan anlaşılacağı üzere R2(Regester2) yi seçiyoruz. R2 nin özelliklerine bakalım isterseniz.
9.Satırda RCGC_2 yani Run Colck Mode ayarını seçiyoruz.Run Colock Mode PLL sinyalini ayarlıyor ve Timer0 ile çalışoyor.
bu regesterlar ile ilgili daha detaylı bilgiyi işlemci datashetindeki 202. sayfadan itibaren 249.sayafya kadarki bölümde bulabilirsiniz.Bu bölümde sürekli clock ve GPIO bağlantısı anlatılmış.
Kodlarımıza dönecek olursak 7 ve 9.satırlar ile clock modunu ayarlıyoruz dedik,Colck modunu RGB ledin bağlı olduğu PORTF ile ilişkilendiriyoruz yani SYSCTL_RCGC2_R sondaki R PORTF değerini alıyor.Ardından uzun tamsayı değişkenine Clock modunu eşitliyoruz.
11 ve 12.Satırlar ile PORF’i çıkış yapıyoruz ve ardından 14(0X0E) değerini yüklüyoruz bu durumda üç rengin karşımı olan beyaz rengi elde ediyoruz.
Uygulamanın videosu
Stellaris LauncPad’in Gpio ve clock birimlerini incelemeye çalıştığımız bu yazımızında sonuna geldik.Bir sonraki yazımızda görüşmek dileğiyle.Hoşcakalın, Mutlu kalın.
--------------------- Kimler geldi kimler gecti don bak arkana elbet ki zaman bizi sizide silip supurecektir peki bizden geriye ne kalicak ? keske hic bir sey kalmasa...

Youtube kanalim ► https://goo.gl/eM6wz2

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı