PIC Programlama – 3 – Merhaba Dünya Analizi

Uzunca bir dönemdir, çok büyük bir yoğunluk içindeyim. Bu sebepledir ki, bir türlü fırsat bulup yeni bir yazıya başlayamadım. Herhalde gün, bu gündür 🙂

Geleneksel olarak yine merhaba dünya yazımızın suyunu sıkma niyetindeyiz. Her ne kadar girizgah seviyesinde de olsa yazdığımız merhaba dünya yazısında, netleştirilmesi gereken bazı şeylerin olduğu aşikar. Bu yazı dizisinden önce Gömülü C yazı dizisinin okunmuş olmasını şiddetle tavsiye ediyorum.

Şimdi lafı uzatmadan, PIC’de yazdığımız ilk kodu hatırlayalım.

Bir kere şu xc.h’ı bir inceleyelim ne varmış içinde?

Gördüğünüz üzere, XC aslında MplabX Compiler anlamında yer alıyor ve kullandığımız platform 8 bitlik olduğundan, __XC8 etiketi sistemde tanımlı olduğundan (MplabX tarafından, biz projeyi oluşturduğumuzda otomatik tanımlanır) ilgili compiler header’ı çağırılmış. Bunun da “htc.h” olduğunu görüyoruz. Burada jeton düşüyor, hmm demek ki bu xc serisi, eski hi-tech C compiler’ın üzerine kurulmuş. Burnumuz bunun kokusunu aldı. Şimdi daha derine inelim; htc.h’ı açalım.

Bu header dosyası sayesinde, projenin özelliklerine bakılarak jenerik olarak doğru header’ların seçilmesi sağlanıyor. Muhakkak ki bunların hepsi alt alta dallanıyor ancak şöyle kısaca bir özet geçelim. CCI denilen bir muhabbet var. The Common C Interface (CCI) kavramı, taşınabilir kod yazılabilmesi için ortaya atılmış güzel bir kavram. Ancak Microchip bence bu yarışta biraz geride kalmış. Yine de CCI’ya ileride değineceğim.

xc8debug.h ise, MplabX ide üzerinden yapılan debug işlerine yardımcı olan, çok çok basit bir header. Dolayısıyla üzerinde çok konuşmaya değmeyecek.

pic.h ise önemli. Çünkü derleyicinin bizim işlemcinin register tanımlarını aldığı kütüphane bu kütüphane. Bu iş nasıl oluyor? Biz projeyi yaratır iken, IDE bizim seçtiğimiz işlemciye göre gidip -D ile, compiler define yapıyor. Daha sonra pic.h gibi kütüphaneler bu bilgileri kullanarak, hangi mikrodenetleyicinin header’ının seçileceğine karar veriyor. Örneğin bizim seçimimizde IDE, bizim seçtiğimiz işlemciye göre -D_16F84A tanımını yaptı. Bu bilgiyi cebe atıp devam edelim. pic.h’ın içine bir bakalım.

Arkadaşlar sağolsunlar pic.h içinde bize yardımcı olabilecek çok sayıda şey tanımlamışlar. pic_chip_select.h tam olarak mikrokontrolör header’ı seçimini yapıyor ve onu mutlaka konuşacağız. Ancak sırayla buradaki bazı ibretlere bir değinelim. PIC16F84A; 68 byte RAM’i ve 1024 word’lük inanılmaz(!) FLASH belleği ile, hakikaten kısıtlı kaynaklı bir donanım olduğundan, dayılar haklı olarak LOG ve TRACE fonksiyonelitelerini kapatmışlar 🙂 Zira bu fonksiyoneliteleri kullanmaya kalksaydık, kaynakların çoğunu kullanmış olurduk.

Yukarıdaki etiketler, assembler komutlarını çağırarak sırasıyla watchdog timer’ı resetlemenin ve uyku moduna girmenin verimli implementasyonları olarak göze çarpıyor. Watchdog timer’ı resetlemek bazı arkadaşlara bir anlam ifade etmemiş olabilir. Mikrodenetleyici bir sebepten donarsa filan, reset atabilecek bir donanımın olması gerekiyor. Eğer mikrodenetleyicideki kod, belli aralıklarla watchdog timer’ın sayacını sıfırlamazsa, sayaç artıp taşar ve taştığı gibi mikrodenetleyiciye reset atar. Yerli yerinde kullanıldığında WDT (watchdog timer) candır 🙂 Sleep ise, mikrodenetleyiciyi düşük güç tüketimi moduna sokmanın güzel bir yoludur. Bu kısmı da ileride detaylıca ele alacağız.

ei(); ve di(); fonksiyonları ile sırasyla interrupt enable ve interrupt disable işleri kolaylaştırılmış. İleride detaylıca değineceğimiz kesme fonksiyonelitesinin aktive edilmesi ya da devre dışı bırakılması için bu makroları kullanmak mümkün 🙂 Diğer kısımlar zaten benzer. Öyleyse şimdi pic_chip_select.h kütüphanesinin bir kısmını inceleyelim. Gerisi de zaten aynı 😀

Bu dosyada gördüğünüz gibi, IDE tarafından biz projeyi oluştururken tanımlanan etiketler kullanılarak doğru başlık dosyaları (header files) projeye dahil ediliyor yani çağırılıyor. Bu saydede biz xc.h dediğimizde, mikrokontrolör modeline göre, başlık dosyaları otomatik çağırılmış oluyor. Hmm, güzel 🙂 Öyleyse bir adım daha dalalım.

Burada, tüm register tanımlarının nasıl yapıldığına dikkat ediniz 🙂 Bizim Gömülü C yazı dizisini tamamen okuyan herkes için burada ne yapıldığını anlamak kolay olacaktır. Yine de anlamadığınız yerler olursa sorunuz 🙂 Şimdi merhaba dünya kodumuzdaki register’ları özellikle inceleyelim.

Burada demişler ki PORTB diye bir değişken yaratıyoruz ve bu bellekteki 0x006 numaralı adrese karşılık düşüyor. Yine benzer şekilde TRISB diye bir değişken yaratıyoruz ve bu bellekteki 0x086 numaralı adrese karşılık düşüyor. Bu bilgileri datasheet’teki bellek haritasından aynen doğrulamak mümkün. Zaten oradan bakıp yazmışlar 🙂 Ama ayıbetmişler… Çünkü tüm register’lar için kafadan değişken tanımlanmış. Bu, ödemesi ağır bir bedel. Ayrıca @ operatörü standart bir operatör değil. Dolayısıyla bu tanımlar, platform bağımlılığı yaratmakta ve kodların taşınabilirliğini negatif etkilemekte. Bunlara bir ayar çekmemiz kaçınılmaz duruyor 🙂

Şimdi, bu noktaya geldikten sonra, geleneğimizi uygulayalım ve yine header kullanmaksızın merhaba dünya kodumuzu yeniden yazalım 🙂

Gördüğünüz üzere, kodda ne bir kütüphane kullandık, ne de bir değişken! Zaten kodumuzda, merhaba dünya kodundaki gereksiz şeylerin hiç birisi yok. Register tanımlarını da çok çok daha verimli şekilde yaptığımızı gururla huzurlarınıza sunarım 🙂 0 byte değişken kullanarak, yine ledimizi yaktık!

PIC16F84A_3

Buradan gerekli ibretleri lütfen alalım 🙂 Sanıyorum ki, “Abi PIC programlama yaparken Hi-Tech compiler CSS’den iyiymiş yaa” filan gibi geyiklere artık bolca gülersiniz. Hiçbirine ihtiyacımız yok, sadece tekerleği yeniden icad etmemek için onları araç olarak kullanıyoruz 😉

Sonraki yazımda bu temellerin üzerine, giriş çıkış işlemleriyle ilgili detaylı bir yapı inşa etmeyi planlıyorum. Dilerim sizler için de faydalı ve eğlenceli bir yazı olmuştur.

Şimdi devam…

Önceki Sayfa   Sonraki Sayfa

 

PIC Programlama – 2: Merhaba PIC16

Selamlar 🙂 Bu gün nihayetinde Merhaba PIC16 yazımı ekleme niyetindeyim. Esasen yazdığım sayfalarca yazıyı browser’ın azizliğinden dolayı kaybettim. Ancak yılmak yok 🙂 Tekrardan yazmaya devam. Sizlerle 07.03.2015 tarihinde paylaşmayı planladığım bu yazımı ne yazık ki ancak paylaşabiliyorum. Bu gecikme için affınıza sığınıyorum ve yılmadan yazmaya devam diyorum.

Bu yazı dizisinde, sevgili dostum Birol Çapa ile üniversite yıllarında birlikte oluşturduğumuz kaynaklardan da faydalanacağım. Bu vesileyle sevgili dostum Birol‘a da teşekkürlerimi iletiyorum.

Efendim bu yazı dizisinin temel amacı, devasa bir okyanus olan gömülü sistemlere, okyanusun ortasından dalmak yerine güzel bir sahilden dalmak. Yani ne demek istiyorum? Derya deniz diye özetleyebileceğimiz bu konuda, uygulama yapabileceğimiz güzel bir başlangıç noktasından balıklama konuya dalmak. Yine çok sayıda ibretlik noktaya değineceğimizi düşünüyorum. Yazılar da yine her zamanki uslüpla olacağından, sizleri de sıkmadan eğlenceli bir yazı dizisi geçireceğimize inanıyorum.

Neden PIC16 sorusunun cevabını esasen bir önceki yazımızda bir miktar vermiştik. Şimdi başka soruların peşinde koşalım!

Neden Mikrokontrolörler?

Efendim gömülü sistemler derya deniz demiştik. Gömülü sistemlerin en yaygın kullanım alanlı alt dalı, mikrokontrolör tabanlı sistemlerdir. Bu dal öyle bir daldır ki, çoğu ağaçtan çok daha okkalıdır. Burada edineceğimiz bilgileri, joker gibi diğer tüm gömülü sistem uygulamalarında uygulayabileceğimizden dolayı, mikrokontrolörleri iyi bilmek, iyi kullanmak çok çok önemlidir. Buna istinaden bu yazı dizisi vesilesiyle hızlıca mevzuya dalmanın faydalı olacağını düşünüyorum.

PIC de, gömülü sistemlerin temel mantığını çok çok güzel şekilde anlayabileceğimiz bir başlangıç noktası. Beğenirsiniz beğenmezsiniz, Arduino var olana kadar en önemli hobi elektroniği argümanlarından birisi PIC idi. Halen daha kullanımı çok yaygın. Ve dostlar bence buradan da öğrenebileceğimiz çok önemli noktalar olabilir. O sebeple hakir görmeyelim 🙂

Neden C?

C dili ile ilgili tonlarca şeyi, Gömülü C yazı dizisinde konuşmuştuk. Mikrokontrolör programlama işlerinde, C/C++’ın yanı sıra, Assembler, basic ve hatta yer yer java dilleri bile kullanılır. C dili bunların hepsinin ağzını burnunu kırar diyeceğimi lütfen düşünmeyiniz bile. C dilini bir kenara atıp diğer dillere çamur atmaya da niyetli değilim.

Yazılımda programlama dilleri amaç değil araçtır. Programcı bir nevi ninja ise, programlama dili de ninjanın silahıdır. Bazen kocaman bir kılıç karşısında, minik bir hançer ya da mınçıka galip gelebilir. Zira kılıç ile bir hareket yapıncaya kadar, bu ufaklıkları 8. hamlesini tamamlayabilir 🙂 Keza savaş uzaktan yapılıyorsa, belki ok ve yay kullanmak daha yeğdir. Neyse, Age of Empires ya da Hitman oynamıyoruz. Ağzımdaki baklayı çıkarayım; bu dillerin her birinin muhakkak ki birtakım avantajları ve dezavantajları bulunmaktadır. Bu diller içerisinden C dilini seçmemizin nedeni, bu dilin en yaygın kullanılan programlama dili olması, gömülü sistemlerin her alanında gücünden pek de bir şey kaybetmeden kullanılabilmesi gibi çok güzel sebepler yatar. Ancak göreceksiniz ki yeri gelecek birden fazla dili beraber de kullanacağız. Benim Assembly kardeşimi hakir görmek, şüphesiz ki davaya ihanet olacaktır 😛

Temel Kaynaklar

Bir mikrokontrolör programlama mevzusu varsa en birinci kaynak, şüphesiz ki o mikrokontrolörün datasheet’i (veri kağıdı) olacaktır. Gömülü sistemlerde bir şeyler yapmayı öğrenmenin büyük bir kısmı veri kağıdı okuyup anlayabilmekten geçer. Bizim PIC16’nın da çeşitlerinin güzel güzel veri kağıtları mevcut. Aslında daha gelişmiş mikrokontrolörlerin datasheet’inde genellikle donanımsal özelliklere yer veriliyor. Bu tip donanımları kullanabilmek için “user guide” olarak da bilinen kullanım kılavuzlarını okumak gerekiyor. Neyseki PIC16F serisi, görece basit bir seri olduğundan veri kağıdı ile paçayı sıyırıyor olacağız. Hemen çok kullanacağımız bazı PIC’lerin veri kağıtlarını paylaşalım.

Efendim, gömülü sistemci olacaksak ne yapıp edip bu dokümanları okuyabilir hale gelmemiz gerekiyor. İngilizce bilmeyen arkadaşlarım da lütfen bu sorunun üstesinden gelmek için Google Translate gibi araçları kullansınlar. Zira bir yerden sonra hep aynı terimler geçtiği için dökümanları anlamak çok çok kolay oluyor.

Veri kağıtlarına ek olarak önemli bir kaynak da, geliştirme ortamının ya da derleyicinin dökümanasyonu oluyor. Ben derleyici dedim ama aslında demek istediğim toolchain. Yani içinde derleyici, bağlayıcı (linker dayı), assembler, türlü türlü kütüphaneler filan bulunan yazılım paketi. Bunun dökümantasyonunu da incelemekte faideler mevcut. Bizimkine, sırası gelince değineceğim.

Kullanılacak Programlar (Kurulumlar)

Yolculuğu kafamızda şöyle kısaca bir çizelim ki, ihtiyacı listeleyebilelim. Bizim öncelikle kodumuzu yazabileceğimiz bir ortama ihtiyacımız var. Bunun adı geliştirme ortamı (IDE). Ardından kodlarımızı anlayacak, derleyecek, link edecek bir yazılım setine ihtiyacımız var. Sonra diyelim ki yazılımımızı yazdık ve executable dosyamızı elde ettik. Bunu PIC’e yazacak bir programlayıcıya, ve programlayabileceğimiz bir donanıma ihtiyacımız var. Veya, programlayıcı + programlanacak donanım yerine simülatör kullanabiliriz 🙂 Özellikle hızlı uygulama ve öğrenme açısından simülatör kullanmak çok mantıklı olabiliyor. Ancak gerçekleme yapmak da şart. Biz tüm bu aşamalara değineceğiz ancak önce kurulumlarımızı tamamlayalım.

  • MPLAB X IDE: PIC için  diye gayet hoş bir IDE mevcut. Ardından bir toolchain’e ihtiyacımız var. Bazı IDE’lerin içinde toolchain hazır olarak geliyor ancak MPLAB söz konusu olunca bu kadar şanslı değiliz. Gerçi MPLAB X, tüm seriler için genelgeçer bir IDE olduğundan, toolchain’in sonradan kurulması da mantıklı 🙂 Ben MPLAB X versiyonu olarak 3.0 beta kurdum. Normal şartlar altında, bir gömülü sistemci asla ama asla beta yazılım kullanmaz. Sağlamclığıa çok aykırıdır. Ancak bu, bilgi paylaşımı amaçlı bir yazılım olduğundan, siz bu yazıyı okuyuncaya kadar 3.0 stabil versiyon da çıkar diyerekten 3.0 beta kurdum. Siz de ücretsiz olarak kurulumu yapabilirsiniz.
  • MPLAB XC8. Neyse bir sonraki aşama olarak 8 bit’lik PIC’ler için olan XC8 toolchain’i kuruyoruz. Efendim eğer 16 bit’lik bir PIC için yazılım geliştirecek olsaydık XC16, 32 bit’lik bir PIC için yazılım geliştirecek olsaydık XC32 kuracaktık ancak suyu bulandırmayalım ve MPLAB X’in üzerine XC8 kuralım. Son versiyon olan, MPLAB® XC8 Compiler v1.34 kurulumunu tamamladım. Siz de en son versiyon hangisi ise, onu kurabilirsiniz. Evaluation sürümü ücretsiz! PRO versiyonu da 60 gün için yine ücretsiz 🙂 XC8’in çiçek gibi de bir dökümantasyonu var. Mutlaka feyizlenelim. Kurulumu yaparken, MPLAB X IDE’yi XC8’i kullanacak şekilde güncelleyin seçeneğini işaretlemeyi unutmayalım 🙂 Esasen ben eskiden toolchain olarak Hitech PIC C kullanırdım. Ama Microchip şurada, artık kullanmayın demiş. Zaten hiç bir şeyin fark etmeyeceğini, bunlara ihtiyacımız bile pek olmadığını anlatacağım. Ama şimdilik önerilen ile devam edip XC8’i kuralım.
  • Proteus ISE:  Bu yazılım da güzel bir simülasyon ortamı. Aslında Proteus’a simülasyon ortamı demek biraz vicdansızlık olur. Zira Proteus ile, devre tasarımı, devre simülasyonu, şematik ve PCB tasarımı da yapılabiliyor. Kendisi çok çok başarılı bir yazılım. Ancak ne yazık ki ücretli. Yine de evaluation versiyonunu kullanabilirsiniz. Ya da internetten proteus kurulumu ile ilgili detaylı bilgileri bulabilirsiniz. Ben 8.10 SP1 versiyonunu kullanıyorum, çok da memnunum 😀 Proteus kurulumunu yaptıktan sonra, eğer proteus kullanmayı bilmiyorsanız google üzerinde proteus derslerine bakıp, proteus kullanımını kabaca öğrenmeniz gerekiyor.

Bunlara ek olarak, donanım bağımsız algoritmaları test etmek amacıyla bir C/C++ IDE’si  kurmakta fayda var. Orwell Dev C++ gayet ufacık tefecik ama işe yarar bir araç.

Kurulumları tamamladıktan sonra, mevzuya dalalım 🙂 Öncelikle, proteus üzerinde programlayabileceğimiz bir PIC ortamı oluşturmamız gerekiyor. İlk örneğimizi PIC16F84A ile yapalım. Proteus’ta “P” tuşuna bastığımızda, place part yani devre elemanı ekleme ekranı açılıyor. Buraya PIC16F84A yazdığınızda, ilgili sembol çıkacak ve çift tıkladığınızda soldaki listeye eklenecektir. Ardından PIC mikrokontrolörü ve diğer gerekli devre elemanlarını eklemeniz mümkün olacak. Proteus derslerini incelediğiniz için burayı kısa kesiyorum ve kurmanız gereken basit devreyi aşağıda sizlerle paylaşıyorum.

PIC16F84A_1

Şimdi akıllara haklı bazı sorular gelebilir. En birincisi, bu devrenin beslemeleri nerede? PIC16F84A üzerine çift tıkladığımızda bir pencere açılır. O penecede sol kısımda “hidden pins” yani gizli pinler yazar. Burada VDD ve VCC pinlerinin gizli olduğunu ve otomatik olarak PIC’in beslendiğini görürüz. Şimdilik bu konu üzerinde çok durmayacağım ancak ileride bunu da açıklayacağım. Şimdilik merak edenler buraya bakabilirler. Proteus burada bizim işimizi kolaylaştırmış ancak gerçek hayatta beslemeyi bağlamazsanız hiç bir şey çalışmayacaktır. Buna ithafen VCC ve GND bacaklarının arasında 2.0V – 5.5V arası bir gerilim olması gerekiyor. Bu bilgiyi nereden öğrendim? Tabi ki datasheet’ten 🙂

Neyse şimdi devam edelim, işlemcinin beslemeleri otomatik yapıldı. PIC16F84A’nın dahili osilatörü olmadığından dışarıdan OSC1 ve OSC2 pinlerine bir XTAL (crystal) osilatör bağlamışız. Buradaki kapasitelerin değerine kadar datasheet’te yazıyor. 22pF da bağlasak olurdu 🙂 Esasen bu pinlerin arasında bir ring osilatör var, XTAL ve kapasitörler bu devreyi tamamlıyor ve osilasyon başlıyor. Burada şimdilik çok detaya girmeyeceğim. Osilatör bir anlamda kalp atışı gibi sinyaller üretir ve mikrodenetleyicinin, bu işarete (saat işareti, clock cycle) senkronize şekilde işlem yapmasını sağlar. Bu kısma parantez değil paragraflar açmak gerekiyor. Onu da ileride açacağım. Ancak şimdi neyse diyelim ve devam edelim.

MCLR diye bir pin var üzerinde de bir çizgi var. Bu pin Reset pini ve üzerindeki çizgi bize, bu pinin “active low” yani “düşük seviyede aktif” olacak şekilde çalıştığını anlatıyor. Bu durumun Türkçe’si şu ki, o pini lojik 0 seviyesine çekerseniz mikrokontrolör reset durumunda kalacaktır. Biz de ne yapmışız, butona basılmadığında o pin lojik 1’de kalacak şekilde yapmışız. Buton’a basıldığında ise mikrokontrolör reset’e çekilecek.

Bizim PIC16F84A yerine PIC16F877A kullanmak istesek bağlantılar nasıl olacaktı? Aşağıdaki gibi, yani aynı olacaktı.

PIC16F877A_1

Neyse biz hemen mevzumuza yani PIC16F84A’ya geri dönelim. Proteus’ta mikrokontrolöre hiç bir şey bağlamasak da mikrokontrolör çalışıyor 😀 Bu sebeple, hızlıca bir led bağlayıp, aşağıdaki devreyi kuralım.

PIC16F84A_2

Hemen ilk kodumuzu da yazalım 🙂 Bunun için MPLAB X’de bir PIC16F84A projesi oluşturmak ve aşağıdaki kodu eklemek gerekiyor.

Bu kodu projemizde derlediğimizde, derleyici .hex uzantılı bir dosya oluşturacak. Şimdi proteus isis’te kurduğumuz devreye dönelim, ve PIC üzerine çıft tıklayıp “Program File” yazan kısma çift tıklayarak, üretilen .hex uzantılı dosyamızı seçelim. “OK” tuşuna basarak çıkalım ve “play” butonuna basarak simülasyonu başlatalım. Led, aşağıdaki gibi yanacak.

PIC16F84A_3

Değerli dostlarım, burada PIC dünyasına merhaba demiş olduk. Mutlaka ki buraya kadar olan kısımda konuşabileceğimiz çok şey var. Ancak tüm bunları diğer yazıya bırakıyorum 🙂 Zira bu yazıyı bu gün bitmeden yayınlamak niyetindeyim. Bir sonraki yazıda bu yaptıklarımızın suyunu çıkaracağız ve ibretler üzerinden gideceğiz 🙂

Buraya kadar okuduğunuz için teşekkürler. Yazıyı beğendiyseniz, faydalanabilecek tanıdıklarınız ile paylaşabilirseniz sevinirim.

Şimdi devam!

Önceki Sayfa   Sonraki Sayfa

PIC Programlama – 1: Girizgah

Yol haritamız, karanlıkta kılavuzumuz demiştik. Donanım altyapısının tahsisinden sonra, kaya misali bir gömülü c altyapısı oluşturmuştuk. Bu sert altyapının ardından yol haritamızda sözünü ettiğimiz ilk yazı dizisi nihayetinde başlıyor. Hobi elektroniğinde yeri çok başka olan Microchip PIC mikrodenetleyicilerini nasıl kulumuz kölemiz yaparız, ne yapar ne eder de bu mikrokontrolörün suyunu sıkarız ona değinmeye çalışacağım.

Tüm bu planlar yol haritamızda belirttiğimiz stratejik bir yolun parçası tabi ki. Gömülü sistemlere adım atan çoğu kimse aynı kırıcı mevzudan şikayetçi; nereden başlayıp nereye gideceğini bilememekten… Sırf bu bağlamda bile yol haritamızın değerli olduğunu düşünüyorum. Konuları kompleks hale getirmeden anlatmanın yollarını bulamazsak eğer, kompleks sistemleri anlamamız mümkün olamayacak. 8-bitlik popüler bir mikrodenetleyici bu sebeple başlamak için iyi bir adım olacak 🙂 Bu sayede sonraki adımlarımızı da çok sağlam atma şansına sahip olacağız.

Kulağa çok kötü gelmiyor da bilader niye böyle bir şey yapıyoruz diyenler olmuştur. Amaç, gömülü sistemler dünyasına ayakları yere basan bir giriş yapmak. Bir eve girerken, duvardan geçmeye çalışmak her zaman iyi bir fikir olmayabilir, ancak bunun farkına varmamız için kapı, pencere gibi temel alternatifleri bilmemiz gerekir. Bu amaçla basit bir mikrodenetleyici üzerinde detaylı bir bilgi seti inşa edip sonraki basamaklara tırmanıyor olacağız. Bu süreç içerisinde yine her zamanki gibi türlü türlü ibretler ve komiklikler şakalar ile karşılaşacağız.

Bu kapsamda Microchip firmasının 3 farklı ürünü üzerinden gideceğiz. PIC16F84A, PIC16F628A ve PIC16F877A. Neden bu serileri seçiyoruz? Çünkü hobi elektroniği camiasında en çok kullanılan ürünler bunlar. Ayrıca vermek istediğim mesajları düşününce, bu serilerin işimizi gayet tertemiz göreceğini düşünüyorum. Bu sebepledir ki bu üç civciv ile başlayacağız yolculuğumuza.Haydi hayırlısı artık 🙂

Bu yolculuğumuzda elle tutulur neler ile karşılaşacağız diye soracak olursanız şöyle bir liste yapmak mümkün olacaktır diye düşünüyorum.

  • Temel anlamda mikrokontrolör kullanımını anlamak
  • Mikrokontrolör’ün veri kağıdını (datasheet) güzelce okumayı öğrenmek
  • Mikrokontrolörün çevresellerini (peripheral) modellemeyi ve kullanmayı öğrenmek (çok önemli)
  • Sensör modellemeyi ve kullanmayı öğrenmek
  • 8 bitlik bir mikrokontrolör üzerinde neler yapılabileceğini ve neler yapılamayacağını görmek
  • Kütüphaneleri kullanıp, onlara bağımlı olmamayı öğrenmek
  • Donanım bağımsız kodlama yapmayı öğrenmek
  • Mikrokontrolörlerde hata ayıklama yöntemlerini öğrenmek
  • Mikrokontrolörün nasıl çalıştığını öğrenmek
  • Karışık sinyal devre tasarımı hakkında pratikler görmek
  • Hayata dokunan, onu yumruklayan işler yapmak

Bu bağlamda standard PIC programlama yazılarından epeyce farklı şeyler göreceğinizin garantisini veriyorum. Umuyorum ülkemizde, bu konular ile ilgilenmek isteyen kimselere faydalı olacak bir yazı dizisi olur. Gerek ilgi duyan kimselerin bu alanlara yönlendirilmesi, gerek bu alanda çalışan kişilerin bilgi birikimine bir nebze olsun katkıda bulunulması hedefleriyle bu yazıyı büyük bir motivasyonla sürdürüyor olacağım 🙂

PIC deyip küçümsemeyiniz, es geçmeyiniz efem. Zira buradan da edineceğimiz bir şeyler muhakkak vardır bakış açısı, bu güne kadar kimseye zarar getirmemiştir 🙂 Ayrıca yalnızca öğrenecek şeyleri olduğunu kabul edenler, kestirmesi olmayan uzun yolların sonunu görebilirler diye düşünüyorum. Bu vesileyle ben de zamanları boşa harcamayacak şekilde yazmayı sürdüreceğim 🙂 Bu süreçten büyük keyif alacağımı hissediyorum.

Dilerim ki sizler için de eğlenceli olur.

NOT: Yazı dizisi’nin ikinci yazısı “Merhaba PIC16” 7 Mart Cumartesi yayınlanacak.

Yazıları beğendiyseniz eğer,  faydalanabilecek arkadaşlarınızla da paylaşabilirseniz sevinirim.

Şimdi devam…

Önceki Sayfa   Sonraki Sayfa