TI Grace ornek

Başlatan cicjoe, 03 Ağustos 2013, 19:55:02

cicjoe

Arkadaslar MSP430 icin Texas'in bir aracini sizlere tanitayim dedim. Grace, Graphical Peripheral Configuration Tool olarak hizmet vermekte ve Eclipse tabanli olan CCS'in yeni versiyonlarinda butunlesik olarak gelmesinin yani sira, IAR ile kullanmak icin de ayri bir tool olarak indirilebilmektedir. (Diger MCU ailelerini de desteklemektedir)

http://www.ti.com/tool/grace

Cihazinin cevre birimlerini ayarlamaniza gorsel olarak yardimci olur. Ayrica cok kullanilan bazi kod parcalarina da surukle birak ile ulasmanizi saglar.
Bu sekilde uzerinde calistiginiz MCU'nun datasheet'ine git/gel izdiraplarinizi azaltir, cevre birimleri hakkinda bilgiye cabuk ulasmanizi saglar, proje gelistirirken ogrenmenizi saglar (okunakli kod ureterek) ve bazi durumlarda sizi uyararak hata yapmanizin da onune gecmeye calisir.

Yukleme islemi bittikten sonra, calisma alaninizi yani proje dosyalarinizin saklanacagi klasoru belirterek, sonrasinda gelen aktivasyon ekranindan ucretsiz olan 16KB kod limitli versiyonu tercih edebilir ve programi aktif edebilirsiniz.


Daha sonra yeni proje olusturmak icin File>New>CSS Project islemini gerceklestirin. Ekrana gelen pencereden projenizin ismini ve kullanacaginiz MCU'yu secip, Empty Grace (MSP430) Project olusturun.


Projemiz olustugunda main.c ve main.cfg dosyalarini goreceksiniz. main.c dosyaniz programinizin giris kismini yazacaginiz yer, main.cfg ise gorsel olarak ayarlarinizi yapabileceginiz dosyadir. Dikkatinizi cekmesi gereken nokta, main fonksiyonunuzda Grace_init() isimli bir fonksiyon cagrisi olmasi. Grace, okunakligi arttirmak adina, kod kalabaligi yapmamak icin olusturdugu kodlari farkli dosyada tutmakta, kafanizi karistirmamaktadir.


Ornek olmasi acisindan LED yakip sondurme, port'tan ve timer'dan interrupt alma uygulamasi yapalim.

Simdi main.cfg dosyasina gecelim cihazimiz icin ayarlari yapabiliriz. Ust tarafta Welcome ve Device Overview link'lerini goruyoruz. Device Overview'e geldigimizde, sectigimiz MCU'ya ait blok diyagram karsimiza cikiyor.


Oncelikle port ayarlarimizi yapmak icin GPIO bloguna tiklayalim ve istedigimiz pin'leri output olarak tanimlayalim.


Ayarlarimizi kilif gorunumu uzerinden yuzeysel olarak yapabilecegimiz gibi, Power User link'ine gecerek daha ayrintili sekilde de yapabiliriz.


Kodumuzu yazarken bize yardimci olmasi icin View>Grace Snippets tusuna basarak hazir kod bloklarinin oldugu pencereyi aktif edelim.


Oncelikle port1'en gelecek interrupt icin kodumuzu yazalim. Project Explorer'dan src>grace>InterruptVectors_init.c dosyasini actigimizda, bizim icin PORT1_ISR_HOOK isimli interrupt fonksiyonunun olusturuldugunu gormelisiniz. Eger goremiyorsaniz, GPIO ayarlarinda Power User kismina giderek alt taraftaki Port1 Interrupt Handler yazisinin yanindaki tusu kontrol ederek olusturun.

Ornek olmasi icin, Grace Snippets penceresinden surukle birak ile 1-2 parca kod atalim.


Kodda x ve y ile belirtilen kisimlari elle degistirmemiz gerekiyor. Port1.pin3 interrupt icin kullanalim ve Port1.pin1'i yakip sondurelim. XOR icin bir snippet olmasa da OR snippet'i bize nasil yapilacagi konusunda fikir vermekte. | isaretini ^ ile degistirerek amacimiza ulasabiliriz. Interrupt'tan cikarken flag'i temizleyelim. Bunun icin hazir bir snippet bulunmamakta.


Simdi timer icin gene main.cfg dosyasindan timer bloguna tiklayarak, Enable Timer diyerek, Basic User link'inden ayarlari yapalim.


Timer icin herhangi hesap yapmamiza gerek kalmamasi kolaylik bence. Interrupt fonksiyonlarimizin oldugu dosyaya gelip 1 satir da oraya ekleyelim.


Boylece basit bir sekilde uygulama yapmis olduk. Simule etmek gerekirse asagidaki gibi devremizi kurup deneyebiliriz. ISIS'te internal pull-down resistor'u calismiyor zannedersem..


Eger cihazin calisma frekansini tekrar ayarlarsaniz, timer yeniden hesaplanacaktir. Ancak calisma aninda kodla degistirirseniz sizin ayarlamaniz lazim. Bunun icin de Grace'e istediginiz frekans icin hesaplatabilir, kodu daha sonra yapistirabilirsiniz. Ayrica MCU'ya verdiginiz gerilim belirlediginiz frekans icin ugyun değilse sizi uyaracaktir.

Faydali olmasi dilegiyle..
Iyi calismalar..

MrDarK

Hocam örnek için teşekkürler.

Programlama yapmak gittikçe yaygınlaşıyor ve kolaylaşıyor. Önceden firmalar kendi kitlerini bedavaya teşvikle verip yarışmalar düzenleyip kullanımını arttırmaya çalışıyordu, ama artık görülüyor ki bu yarış çok farklı bir alana kaydı.

Yeni çıkan cihazlar , ürünler orta seviye yazılımcı uzman yazılımcı giriş seviyesi yazılımcı farketmeden programlanabilmesi için ellerinden geleni yapıyorlar.

Blok diyagramlarla kod oluşturmak muhteşem görünüyor. Bilmiyorum ne kadar doğru ama giriş seviyesi için inanılmaz bir hız sağlıyor. Haliyle cihazı keşfetmekten sıkılmadan tüm özelliklerini deneyebiliyorsunuz.

Blok diyagramlarla yazılım geliştirme işlemi gelecek yıllarda dahada artacağına inanıyorum.
Picproje Eğitim Gönüllüleri ~ MrDarK

Firzen

çok güzel bir açıklama olmuş ellerinize sağlık gerçekten.
Kararsız...

coderun

güzel bir paylaşım. kod yazmayı kolaylaştırıyor ama farklı firmaların işlemcilerini kullanmayı engelliyor. kod yazmayı unutturur. asm, register, adres ve pointer gibi kavramları bilmek lazım.