C ile AVR Programlama

Giriş

Avr-GCC, GCC derleyici koleksiyonunun bir parçasıdır. Avr-GCC ile AVR çipler için profesyonel düzeyde programlar yazılabilir. WinAVR ise kısaca Avr-GCC'nin Windows ortamında çalışan versiyonudur. Kurulumu son derece kolay olmasına rağmen ilk başlayanlar ve Linux bilgisi az olanlar için en büyük zorluk ilk programı derlemektir.


Atmega8 ile yapılmış tek dijit Nixie saat.


Genel olarak bir programlama dilinde program yazarken, programı basit bir metin editöründe yazar ve daha sonra derleyiciye girdi olarak verirsiniz ve derleyici de programın hedefine göre bir çıktı oluşturur. Hedef bir işletim sistemi olabileceği gibi bizim durumumuzda olduğu üzere bir mikroişlemci de olabilir. CodeVision AVR (CAVR) gibi profesyonel programların kendi içlerinde IDE'leri (Integrated Development Environment - Program Geliştirme Ortamı) vardır ve bu IDE'ler sayesinde pek çok şey görsel olarak yapılır: Editör, derleyici ve hata ayıklayıcı (debugger) hepsi bir aradadır. Oysa, GCC ile işler biraz farklıdır, örneğin derleyiciye verilecek pek çok parametre "Make dosyalarına" girilir ve daha sonra Make denen bir yardımcı program kullanılarak program derlenir.

Diyelim ki basit bir yanıp sönen LED programı yazdık bunu ticari CAVR programında bir hamlede yaparız: CAVR'yi çalıştırır programı yazar ve ekrandaki derle butonuna basarız. Aynı programı WinAVR de derlemek şu aşamalardan oluşur.

  • Programı bir metin editöründe yazarız
  • Make dosyasında gerekli değişiklikleri yaparız (daha sonra öğreneceğiz)
  • Programı derlemek için komut ekranında ilgili make komutlarını çalıştırırsınız.

Peki neden renkli IDE'li derleyicileri olan ticari programlar yerine WinAVR ile uğraşacağız. Pek çok avantajı burada sıralamak istemiyorum, sanırım bir sürü $$$ ödemek zorunda olmayışımız, derleyiciyle ilgili sorunlara (bug) çözüm arayan ve bizim sorularımıza cevap vermek isteyen binlerce günüllünün olması yeterlidir.

PIC mi AVR mi?

Bu konuda internette sürüp giden pek çok tartışma var. Ben bir kaç yıl öncesine kadar PIC serisi entegrelerle projeler yaptım. Daha sonra WinAVR ile Atmega8, 16, 32 ve 128 ile projeler yapmaya başladım ve bence kesinlikle AVR! Bu yüzden bu sitede PIC projeleri şimdilik yer almayacak.

Küçük bir mesaj!

Bu sitede yayınlanan program kodlarının yazarlarına ait bilgiler ile lisans bilgileri dosyaların içinde yer almaktadır. Bu kodların yazarların izni olmadan ticari amaçlarla kullanılamayacağını hatırlatmak isterim. Projelerinizde bu bilgileri silmeyiniz, hatta beğendiğiniz kodların yazarlarına bir teşekkür emaili atmanız uzun saatler boyunca emek harcayarak yazdıkları programları sizlerle paylaşan insanları mutlu edecek ve paylaşımı teşvik edecektir.

  • Güncelleme: Daha önce RHTS02A sensör ile yapılan Nem ve Sıcaklık Ölçer projesi SHT11 ile yeniden yapılmıştır.
  • Projelerin kaynak dosyalarına forum üyelerinden Abonelik satın almış olanlar erişebilirler. Abonelik bedeli 3 yıl için 10 ABD Doları / 15 TL'dir.
  • Forumda reklam bulunmaz.