AVR Çalışma Rehberi

Uzun zamandır AVR hakkında kaynak hazırlama çalışması yapmaktayım ve yeni öğrenecekler için bu kaynakları derli toplu bir halde bu gönderide sıralayacağım. AVR mikrodenetleyicileri öğrenmek istiyorsanız ilk uğramanız gereken yer burası olmalı.

Gereklilikler

AVR mikrodenetleyiciler üzerinde bare-metal seviyede (yazmaç seviyesinde) çalışmak bazıları için zor gelebilir. AVR’a başlamadan önce giriş seviyesinde de olsa temel bilgilere sahip olmanız gereklidir. Eğer AVR size zor geliyorsa tavsiye etmesem dahi mecburiyetten dolayı önce Arduino’yu öğrenip sonrasında AVR’a geçebilirsiniz. AVR bilen için Arduino öğrenmek denen bir kavram yoktur öğrenmeden bildiğinizi fark edersiniz. Bu yüzden Arduino öğrenmeden AVR’a başlayan birisinin hiçbir kaybı olmayacaktır. AVR öğrenirseniz yeri geldiğinde Arduino’yu yapanlardan çok daha iyi ve performanslı kütüphaneler yazabilirsiniz bunun ispatını da yazılarımızda pek çok defa göreceksiniz.

Eğer sıfır seviyesindeyseniz AVR zor geliyorsa Arduino Eğitim Kitabı’nı okumakla işe başlayın. 1–2 ay gibi kısa bir sürede kitabı bitirip, uygulamaları yapıp AVR’a geçiş yapacak seviyeye geleceğinize inanıyorum.

Arduino’yu belki de en sert üslupla eleştirenlerden biri olarak Arduino kitabı yazmamı tuhaf bulabilirsiniz. Bunda şaşılacak bir durum yoktur. Ben hiçbir şeyin reklamını yapmıyorum ve hatta kitabını yazdım diye gerçekleri örtüp reklamını yapacak değilim. Arduino sıfırdan başlayan biri için gömülü sistemlere girişin ilk adımı olmalı ve öğrendikten sonra derhal kaldırıp atılmalı. Arduino’nun tek faydası bu ilk adımı kolayca attırabilmesidir. Pek çok kişinin daha öncesinde PIC Assembly gibi can sıkıcı konulara kafa yorarak bu işe başladığını ve ilerleyemeden bıraktığını biliyoruz. Arduino bunu daha sancısız ve keyifli hale getirmekte. Ama ne zaman biraz daha ilerleyim deseniz Arduino sizi daima yarı yolda bırakmakta. Üstelik Arduino’yu olması gerekenden daha iyi bir noktada görürseniz ona bağlanıp kendinizi geliştirme imkanı bulamazsınız. O yüzden ne kadar hızlı öğrenip ne kadar hızlı da bırakırsanız sizin açınızdan o kadar iyi olacaktır. İlk adım Arduino’yu öğrenmekse ikinci adım onu bırakmak ve daha ilerisine geçmektir.

Hem başlamadan önce hem de öğrenme sürecinde başta C programlama dili olmak üzere temel dijital elektronik, bilgisayar mimarisi, elektronik gibi konularda az da olsa bilgi sahibi olmanız gerekir. Bunun için şu kaynaklardan faydalanabilirsiniz.

Burada özellikle “Mikroişlemci Mimarisi” ve “Mikrodenetleyici Mimarisi” yazılarını okumanız gereklidir. Gömülü sistemlerin ne olduğuna dair kesin bir fikir edinmek için şu makaleyi okumanız yeterlidir.

http://www.lojikprob.com/embedded/gomulu-sistemler-nedir/

Öğrenme sürecinde belki de en çok bilmeniz gereken konu C programlama dili olacaktır. Bunun için şu ders listesi elinizin altında olmalı ve bilmediğiniz yerde müracaat etmelisiniz.

AVR’a başlarken

AVR’a başlarken hemen programlamaya başlamayıp mimari hakkında bir ön bilgi edinmeniz iyi olur. Bunun için şu yazıları okumanız gereklidir.

Sonrasında ise “C ile AVR Programlama” derslerini takip etmeniz gerekir. Bu derslerde temel seviyede uygulamalar yer almakta ve biraz teorik ilerlemekte. Bu dersleri datasheet ile paralel götürürseniz sizin için daha faydalı olur. Derslerin sırasını kaçırmayın ve tamamını öğrenmeden bir sonraki adıma geçmeyin.

Sonrasında AVR bilgisinizi daha derinleştirmek adına teorik dahi olsa AVR Assembly derslerini takip edin.

http://www.lojikprob.com/avr/avr-assembly-1-giris/
http://www.lojikprob.com/avr/avr-assembly-2-avr-hafiza-birimleri/
http://www.lojikprob.com/avr/avr-assembly-3-mikroislemci-durum-yazmaci-sreg/
http://www.lojikprob.com/avr/avr-assembly-4-ldi-ve-add-komutlari/
http://www.lojikprob.com/avr/avr-assembly-5-lds-komutu/
http://www.lojikprob.com/avr/avr-assembly-6-sts-in-out-ve-mov-komutlari/
http://www.lojikprob.com/avr/avr-assembly-7-inc-dec-sub-ve-com-komutlari/
http://www.lojikprob.com/avr/avr-assembly-8-equ-direktifi-ve-assembler/
http://www.lojikprob.com/avr/avr-assembly-10-branch-dallanma-komutlari/

Artık AVR’ı temel seviyede öğrendiniz. Şimdi Arduino’yu öğrenmenize gerek olmasa dahi Arduino’ya doğru bir şekilde bakmak açısından şu kategoriyi okumanızı tavsiye ederim.

http://www.lojikprob.com/category/embedded/arduino/page/2/

Bütün bunlar bittikten sonra uygulama ağırlıklı çalışacağız. Bunun için temel seviyede uygulamaları yaptığım “AVR ile Mikrodenetleyici Uygulamaları” kitabını okuyup uygulamları sıra ile yapmanız gereklidir. Eğer “C ile AVR Programlama” derslerini yeteri kadar takip etmediyseniz bu uygulamaları anlamada zorluk çekebilirsiniz. Bu süreçte en önemli nokta sırayı takip etmenizdir.

Bu uygulamalar bittikten sonra artık ileri seviye AVR uygulamalarına geçebiliriz.

Bu noktadan itibaren orta üstü seviye bir geliştirici olabileceğinizin garantisini verebilirim. Pek çok ticari nitelikteki uygulamayı bu örnek kodları kullanarak ve geliştirerek yapma imkanınız vardır.

--

--