23 May

CCS-C , “Custom Computer Services” Firmasının PIC Mikro Denetleyicileri için geliştirdiği özel bir C derleyicisidir. Standart C operatörleri yanı sıra PIC’lere özel dahili kütüphaneler ve önişlemci direktifleri de içeren program birçok donanım için hazır kodlar da sunmaktadır. MPLAB programı içerisine gömülebilen derleyici sahip olduğu IDE (Integrated Development Environment) arayüzü sayesinde program yazma ,derleme, ve hata ayıklama fonksiyonlarını tek bir ekranda gerçekleştirme imkanı sunmaktadır. IDE’ ye sahip olmayan derleyicilerle çalışırken kodları başka bir metin editöründe yazmanız ve derlemeyi de komutla yada toplu iş dosyalarıyla yapmanız gerekir.
CCS-C de PIC’ler için kod yazmak oldukça kolaydır. Derslerimiz ilerledikçe siz de bana hak vereceksiniz. Basit C programları yazabilen birisi birazda PIC bilgisiyle program yazmaya hemen başlayabilir.
CCS-C derleyicisi PIC10,PIC12,PIC14,PIC16,PIC18,PIC24 ve dsPIC serilerini desteklemektedir. Derleyici tarafından desteklenen tüm PIC’leri görmek için buraya tıklayın. PIC işlemci serileri değişik OPCODE uzunluklarına sahiptirler, örneğin PIC12F675 14-Bit Opcode uzunluğuna, PIC16C57 12-Bit Opcode uzunluğuna sahiptir. Bu nedenle CCS-C compiler değişik Opcode uzunluğundaki işlemciler için değişik derleyiciler içermektedir. Bunlar PCB, PCM, PCH, ve PCD derleyicileridir.
PCB = 12-Bit Opcode, Baseline
PCM = 14-Bit Opcode, Midrange
PCH = 16-Bit Opcode, PIC18
PCD = 16-Bit işlemci, PIC24/dsPIC (PIC24 ve dsPIC serisi 16-Bit, diğer Seriler 8-Bit denetleyicidir)
CCS-C derleyicisinde 1Bit, 8 Bit, 16 Bit, ve 32 bit tamsayı değişkenler ve 32 bit virgüllü sayı değişkenleri kullanılabilmektedir. #byte ve #bit önişlemci direktifleri sayesinde 1 Byte veya 1 Bitlik değişkenler PIC içerisindeki saklayıcılara bağlanabilir. İlerde bunun örneklerini göstereceğiz . Diğer güzel bir özellik ise Bit dizilerinin tanımlanabilmesidir. Derleyicinin sahip olduğu ileri seviye özelliklere yeterli alt yapı oluştuğunda değineceğiz.
CCS-C Programının ana görüntüsü aşağıdaki resimdeki gibidir. Resmi tam boy görmek için lütfen üzerine tıklayınız. Açıklamalar resim üzerinde gösterilmiştir.
Ana ekranla ilgili açıklamalar resim üzerinde yapılmıştır, resmi büyütmek için lütfen üzerine tıklayınız.
New->Source File: Yeni bir kaynak (*.c,*.h) kod dosyası oluştur
New->Project Wizard: Otomatik proje oluşturma sihirbazı
New->Project Manual: Manuel proje oluşturma
New->RTF File: Yeni RTF Dosyası oluştur (Zengin Mtin Dosyası), RTF Editörü açılır
New->Flow Chart: Akış diagramı oluştur, Akış diagramı editörü açılır
Open->Any File: Herhangi bir dosya aç
Open->Source File: Kaynak dosyası aç
Open->Project: Proje Aç
Open->Output File: Proje Çıkış dosyası aç
Open->As Hex File: Hex dosayı açar
Proje menüsünü kullanarak, yapabilecekleriniz şunlar. Varolan projeleri açmak, Yeni bir proje sihirbazı başlatmak, manuel proje oluşturmak, projeyi kapatmak, projedeki tüm dökümanları açmak ve proje dosyalarının tümünde yazı aramak. Normal ders anlatımlarına geçtiğimizde, Proje sihirbazıyla proje oluşturmak ve manuel proje oluşturma hakkında bolca örnek vereceğiz.
Bu menüde Kes, Kospyala, Yapıştır, Tümünü Seç gibi tüm programlardan alışık olduğumuz menü var
Bu menüyü kullanarak kodlar içerisinde arama ve değiştirme yapabilir, satır numarası girerek kod içerisinde istediğiniz satıra gidebilirsiniz. Bu menüden ve normal klavye kısa yollarıyla kullanabileceğiniz bir diğer özellik ise yer imi oluşturma ve yer imine gitme. Yani istediğiniz satırlara işaretler koyup sonra bu işaretler arasında dolaşabilirsiniz. 10 adet yer imi kullanabilirsiniz, yer imi koymak için Shift+Ctrl+0…9 , yer imine gitmek için Ctrl+0…9. 0…9 rakamları için harflerin üstindeki sayılar sırasını kullanın.
Ayarlar menüsünü kullanarak Proje ile ilgili ayarlamalar yapabilir, Programın genel görünümünü ve Kod editöründe kullanılan yazı tip ve renk paletlerini değiştirebilirsiniz. Yine burdan kullaıcı araç çubuğundaki komutları düzenleyebilir ve istediğiniz komuta klavye kısayolu ekleyebilirsiniz.

Yazdığınız kodu derlemek, projeyle ilgili tüm çıkış dosyalarını üretmek, Çipe programı yüklemek, donanımsal hata ayıklayıcıyı başlatmak, ve proje için oluşturulan çıktı dosyalarına bakmak için bu menüyü kullanabilirsiniz. Örneğin yazdığınız C koduna karşılık üretilen ASM kodlarını merak ediyorsanız “C/ASM List” Butonuna tıklamanız yeterli olacaktır.

Bu menude ise kullanacağımız PIC ile ilgili faydalı bilgilere ulaşabiliyoruz. Örneğin “Valid Interrupts” butonuna bastığımızda açılan pencerede kullanmak istediğimiz PIC’i seçerek hangi Interrupt (Kesme) ların bu PIC ile kullanılabileceğini görebiliriz. Aynı şey FUSE ayarları için de geçerli. Ana ekranda solda görünen üç adet butonun ekranda görünme ayarıda yinme bu menüden yapılabilecekler arasında. Butonları kaybettiğinizde eğer ihtiyaç duyarsanız buradan görünmesini sağlayabilirsiniz. Bu menüdeki bir diğer faydalı özellik ise “Special Registers” butonuna bastığınızda açılan ekran. Bu ekranda istediğiniz PIC’e ait register’lara ve bu register’ların adreslerine ulaşabilirsiniz.

Araçlar menüsünde ihtiyaç duyabileceğiniz bir yardımcı yazılımlar bulacaksınız. Açıklamaları resim üzerinde mevcuttur lütefen resme tıklayınız. Burada bulunan Serial Port Monitor yardımcı yazılımını RS-232 uygulamalarımızda kullanacağız.

Eğer ICD programlayıcınız var ise , bu menu yardımıyla Donanımsal Hata Ayıklama işlevini gerçekleştirebilirsiniz. Normal yazılımsal simulasyonlarda program simulator tarafından işletilerek hata aranmaya çalışılır. Donanımsal hata ayıklamada ise Program PIC te çalıştırılır, böylece daha doğru, sonuçlar daha pratik bir şekilde elde edilir.
Proje ile ilgili dokümantasyon oluşturabileceğiniz, metin editörü ve akış diagramı editörüne de kısayollar içeren pek kullanmayacağınız menu
Keyfinize göre düzenleyebileceğiniz bir menü, burada yer alacak butonları Ayarlar menüsünde “Toolbar/Keyboard Setup” kısmına girerek düzenleyebilirsiniz.
Projemizi oluşturmak için CCS-C programını açıyoruz, Project Menüsüne tıklıyoruz.
Açılan Pencerede “PIC Wizard” Butonuna basıyoruz, karşımıza aşağıdaki gibi bir pencere geliyor.
Resimde gördüğünüz gibi projemize flip_flop.pjt ismini verip istediğimiz bir klasöre kaydediyoruz. Kaydet butonuna bastığımızda Proje Sihirbazı karşımıza gelecektir.
Ayarlarımızı resimde görüldüğü şekilde yapıyoruz. (Device = 16F628A, Oscillator Frequency = 4000000 Hz vb. gibi). Başka hiçbir ayar yapmadan “OK” butonuna basıyoruz. Hepsi bukadar
Aşağıdaki resim oluşturulan projeyi ve bizim ekleyeceğimiz flip flop kodunu göstermektedir.
Siz de aşağıdaki kodu resimde görüldüğü gibi // TODO: USER CODE!! yazan yerin altına girin.
while(TRUE)
{
output_high(PIN_B0);
output_low(PIN_B1);
delay_ms(1000);
output_high(PIN_B1);
output_low(PIN_B0);
delay_ms(1000);
}
Daha sonra kodumuzu derlemek, yani PIC’e yüklenecek hex kodunu oluşturmak için ya Compile menüsüne geçip oradan Compile butonuna basıyoruz ya da direkt klavyeden F9 tuşuna basıyoruz. Derleme başarılı birşekilde gerçekleştirildiğinde ekranda aşağıdaki gibi bir görüntü olmalıdır.
Tebrikler, CCS-C ile projenizi gerçekleştirdiniz.
Şimdi de yazdığımız programın çalışmasını test etmek için Proteusta simulasyon yapalım. Proteus kullanmayı bilmiyorsanız buraya tıklayarak proteus hakkında faydalı bilgilere ulaşabilirsiniz.
Proteusta yeni bir dizayn oluşturuyoruz ve bir adet PIC16F628A, 2 adet direnç ve iki adet led kullanarak devremizi oluşturuyoruz. 16F628A2nın ayarlarına girerek CCS-C de oluşturduğumuz .hex dosyasını yüklüyoruz, işlemci clock frekansını 4MHZ olacak şekjilde ayarlıyoruz ve simulasyonu başlatıyoruz. Herhangi bir problem yok ise ledlerin sırayla yanıp söndüğünü görebilirsiniz. dilerseniz ledlere osilaskop bağlayarak voltaj dalga şekillerine de bakabilirsiniz. Aşağıdaki resim simulasyon anında Proteustan alınmıştır.
CCS-C Kodları
#include "flip_flop.h" void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); //Setup_Oscillator parameter not selected from Intr // Oscillator Config tab // TODO: USER CODE!! while(TRUE) { output_high(PIN_B0); output_low(PIN_B1); delay_ms(1000); output_high(PIN_B1); output_low(PIN_B0); delay_ms(1000); } } |
#include <16F628A.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES PUT //Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES NOMCLR //Master Clear pin used for I/O #FUSES NOLVP //No low voltage prgming,B3(PIC16) orB5(PIC18)used for I/O #FUSES NOCPD //No EE protection #use delay(clock=4000000,RESTART_WDT) #use rs232(baud=9600,parity=N,xmit=PIN_B0,rcv=PIN_B0,bits=8) |
flipflop projesinin ccs-c ve proteus dosyalarını toplu olarak indirmek için tıklayın fliplop.rar
CCS-C Prorgamının kullanıcı arayüzüyle ilgili tanıtıcı bilgiler verdik ve basit bir program yazdık. Programın kullanımıyla ilgili daha ayrıntılı bilgilere derslerimiz içerisinde yer vereceğim. Bu makalele birlikte derslerimizin giriş kısmını tamamlamış oluyoruz. Artık genel C bilgisinden başlayarak CCS-C ile PIC programlama konu anlatımlarına başlıyoruz.
Lütfen yazılarla ilgili düşüncelerinizi paylaşınız. Yapıcı eleştirlere her zaman açığım
Saygılar, Sevgiler…
"CCS-C COMPILER RESİMLİ ANLATIM" Yazısı İçin Yapılan 13 Yorum
Çok güzel olmuş, elinize sağlık, en yakın zamanda yazının tamamını okuyacağım. İyi çalışmalar dilerim.
Emeğenize sağlık. İyi niyetle yapılan bir çalışma tşkl.
@ferdem, @ortin
Yorum için teşekkür ederim, devamı en kısa zamanda gelecek inşallah.
Gerçekten ilk kavrayış açısından yararlı oldu…
Bir tavsiyede bulunmak istiyorum, bundan sonra CCS C ile kod yazıldığında yanında kodun ne işe yaradığı da yazılırsa benim gibi yeni kullanıcılar açısıından yararlı olacaktır…
Tebrikler…
Henüz kod anlatımına geçmediğim için bu yazıdaki kodlara açıklama koymadım. Bir kaç gün içerisinde Temel C anlatım yazıları eklenecek. Onlarda bolca olacak inşallah
rc file vb…
I have been searching for sites have content related to radio control racing hobbies to tell them about the Engine Analysis Software for tuning all Nitro RC Engines….
rc file vb…
…
2 Saat önce yazılarınızı okumaya başladım.Şu an 3. bitti.Karşılaştığımız problemleri nerede sorabiliriz?
Allah razı olsun.
Durmak yok yola devam.
4. de açılmış:)
rc nitro engines…
I have been searching for sites have content related to radio control racing hobbies to tell them about the Engine Analysis Software for tuning all Nitro RC Engines….
CCS-C Compiler Resimli Anlatım…
CCS-C , “Custom Computer Services” Firmasının PIC Mikro Denetleyicileri için geliştirdiği özel bir C derleyicisidir. Standart C operatörleri yanı sıra PIC’lere özel dahili kütüphaneler ve önişlemci direktifleri de içeren program bir…
hocam guzel anlatmıssın da resimler ölmüş bi el atsan super olur
Bende açılıyor ama ben yinede düzelteyim, imageshack’a niye yüklediysem sanki
Tesekkurler hocam sanırım imageshack ile ilgili bi sorundan ileri geliyormus su an gorebiliorum
Yorum Yap