Haberler:

Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.

Ana Menü

Atmel programlamayı öğrenelim:)

Başlatan Karadağ, 19 Mayıs 2008, 17:51:38

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Karadağ

Arkadaşlar bu başlıkta sizlerle beraber atmel mikrodenetleyicilerin c dili ile programlanmasını işlemeye çalışıcam. Lütfen bu yazıyı alıntı yapacak olan kişiler kaynağı bu konunun linki olarak versinler.Öncelikle herkesin ilk aklına gelen soruyu yani neden pic değilde atmel sorusunu kendi açımdan değerlendirmek istiyorum. Ben okulda öğrendiğim c dilini değerlendirerek pic programlamayı düşünürken Uykusuz un teşviği ile bir anda avr ile tanıştım ve sonrasında öğrendimki avr pic ile kıyaslandığında çok fazla özelliği çok ucuza sunan bir denetleyici olarak öne çıkıyor.Dahada önemlisi(göreceli olarak) pic e göre aynı frekansta tam 4 kat daha hızlı çalışıyor. Gerçi micro c gibi bir pic programlama ürünü varken avr programlamak pic programlamaya göre neredeyse 4 hatta 5 kat daha zor oluyor ama buda kullanılan lcd glcd v.b. ürünlerin rasgele değilde bilerek kullanılmasını sağlıyor.
Bende bu konuda bildiğim kadarı ile sizlere en başından başlayarak c ile avr programlamayı anlatmaya çalışıcam. Tabii ilgi olursa...
ilk olarak belirtmek istediğim c ile ilgili sorularınızı bu başlıktan sormayın buradan sadece  c avr ile ilgili anlatımları bulundurmak istiyorum.

__________________________________________________________________________________________________________________________________


Şimdi gelelim programlama işlemini nerede yapacağımıza. Ben ücretsiz olması nedeni ile winavr kullanıyorum ve sizinde bunu kullandığınızı varsayıyorum. İndirmek isteyenler için winavr linki:http://winavr.sourceforge.net/
Öncelikle winavr de nasıl program oluşturulduğundan bahsetmek istiyorum. Klasik denetleyici programlama örneği olan led yakıp söndürme işlemi ile hem ilk programımızı yazıcaz hemde winavr kullnımı hakkında fikirler edinicez. Linkte led projesi ve proteus dosyası mevcuttur.Link:http://www.savefile.com/files/1561996

__________________________________________________________________________________________________________________________________


Yukarıdaki dosyayı winavr nin openproject bölümünden açarak inceleyebilirsiniz . Winavr yi pc ye kurduktan sonra baştan bir proje oluşturabilmek için ilk önce makefile nin oluşturulması gerekmektedir. Bunun için makefile programını çalıştırın(winavr ile gelir) ve buradan makefile>mcu type>atmega>atmega8 i seçerek denetleyicinizi belirlemiş olun. Daha sonra makefile>main file name kısmına projenizin c dosyasının ismini yazarak bunu proje dosyasın akaydedin. Şimdi sıra geldi yazılıma başlangıç safhasına. Bunun için ilk olarak winavr yi çalıştırın ve yeni bir proje oluşturun. Oluşturduğununz projenize az önce hazırladığının makefile yi ekleyin. Ve son olarak azönce makefile adını belirlediğiniz proje dosyasını yeni c/c++ seçeneğinden oluşturun ve bunuda projenize ekleyin.Sonunda yazılıma başlayabilirsiniz. Birdahaki dersimizde yukarıda linkini verdiğim led projesinin yazılımını anlatacağım ozamana kadar siz projeye bakarak kendiniz baştan bunu yazmaya çalışın ve soracağınız soruları belirleyin ;)
Linkback: Atmel programlamayı öğrenelim:)
insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.

Uykusuz

Hocam emeğin için teşekkürler. Ben asm ile pic programlıyorum fakat bahsettiğin AVR artılarından dolayı ilk fırsatta AVR ye geçmeyi düşünüyordum bu başlık bunun için çok iyi oldu. İnternette malesef bu konuda türkçe döküman bulmak biraz zor oluyor. Bu başlığın sürekli takipçisi olacağım.

Karadağ

Teşekkür ederim Uykusuz. Bu başlıkta elimden geldiğince yardımcı olmaya çalışıcam ama ilgi olursa. İlgi olmazsa devam etmiycem. İşe birazda görsellik katmak adı asltında makefile,winavr ve proteus daki görüntüleri ekliyorum.

insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.

UNIQUE - TA5DF

ustam ilgi ne demek .. hepimiz bişeyler ğrenmeyi isteriz tabiki. ayrıca ben pi basic kullanıyorum ama dediğiniz gibii glcd konusunu hala tam olarak öğrenebileceğim bir kaynak bulamadım. avr ile yaapabilirsek hemen ar  kullanırız olu biter. hem fazla bilgi göz çıkarmaz:)
TA5DF

ali kaptan

bence mükemmel bi çalışma başlatmışsın.devamını merakla bekliyor olacağım.

çavuş

bende meraklıyım böyle işlere.diğer konuları dört gözle bekliyorum.faydalı olacağınada inanıyorum.
teşekkürler...

UNIQUE - TA5DF

ete hocanın pic basic derslerinden (11 dersti) sıfırdan pic programlamayı öğrendim. karadağ hocanın atmel  derslerindende atmel programlamayı öğrenirsem. tutmayın beni..........
"bana bir kod öğretenin 40 yıl kölesi olasım gelir."
TA5DF

baron66

vallahi bende çooook memnun oldum böyle bir konu açıldığına. Takipçinizim hocam.
ben pic basic pro ve proton + kullanıyorum, birde atmel öğrenmeyi çok isterim.
bu arada forumda yeniyim....saygılar herkese...
HAYALLERİ OLAN İNSAN DURDURULAMAZ.

Karadağ

aramıza hoşgeldin baron66 şu aralar biraz yoğunum işlerim hafifleyince konuya devam edicem
insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.

UNIQUE - TA5DF

Alıntı yapılan: baron66 - 17 Ağustos 2008, 00:20:10
vallahi bende çooook memnun oldum böyle bir konu açıldığına. Takipçinizim hocam.
ben pic basic pro ve proton + kullanıyorum, birde atmel öğrenmeyi çok isterim.
bu arada forumda yeniyim....saygılar herkese...
baron66 hoş geldin . bende pic basic pro kullanıyorum. şu aralar jalturk öğreniyorum. senden bir ricam olacak eğer elinde kapsamlı proton+ dökümanı varsa paylaşabiirmisin. proton+ için gerekli program, döküman ve örnekler eminim çok işime yarar.
TA5DF

baron66

hoşbulduk arkadaşlar.
elimde proton + için complier var, örnek yazılımlar da verebilirim.
birde türkçe kitabım var. bu kitabı www.infogate.org adresinden edinebilirsiniz.
herkese çalışmalarında başarılar dilerim.
HAYALLERİ OLAN İNSAN DURDURULAMAZ.

UNIQUE - TA5DF

proton+ editör derleyici örne ve mevcut dökümanları zip yapıp savefile atabilirsen sevinirim. verdiğin linkte proton+ ile ilgili kitap bulamadım. picbasic ile ilgili hertürlü  döküman bende mevcut.
TA5DF

baron66

kitap için doğru adres burası, diğeri sanırım problemli. fiyatı halen aynı 15 ytl.
http://www.garantialisveris.com/teknoMarket/ProductDetail.aspx?ProductId=75727&StockId=98520
diğer dosyaları ekleyeceğim.
HAYALLERİ OLAN İNSAN DURDURULAMAZ.

UNIQUE - TA5DF

TA5DF

baron66

feridun savefile yi bitürlü kullanamıyorum. update ediyorum dosyayı ama link alamıyorum. bana yardımcı olursan sevinirim.
HAYALLERİ OLAN İNSAN DURDURULAMAZ.

Uykusuz

sevefile bazen böyle sorunlar çıkarıyor malesef :(

baron66

HAYALLERİ OLAN İNSAN DURDURULAMAZ.

UNIQUE - TA5DF

teşekkürler baron66 içindeki örnekler epey işime yarayacak.
sağol kardeşim.
TA5DF

baron66

paylaşmak lazım feridun. zamanında biz paylaşacak kimse bulamadık. öğrendikten sonra da paylaşmak lazım yani.
HAYALLERİ OLAN İNSAN DURDURULAMAZ.

Karadağ

Evet arkadaşlar uzunca bir aradan sonra işe kaldığımız yerden devam edelim.

Ben kendi düşüncelerime göre konulara bölerek devam edicem eğer anlatımı değiştirmemi isterseniz yada üzerinde durulması gerektiğini düşündüğünüz konular olursa lütfen buradan yazarak beni bilgilendirin.

Şimdi geçelim konumuza bugün sizlere elimden geldiğince portların giriş çıkış olarak kullanılmasını anlatıcam ve bir giriş ayarlayarak bir çıkışı kontrol etmek suretiyle konunun anlaşılmasını sağlamaya çalışıcam. Bazı arkadaşlara çok basit gelecek bu konu mcu programlamaya yeni başlayanlar için önemli sayılabilecek bir konudur. Çünkü bu konudan sonra giriş olarak tanımlanan pinlerden gelen bilgilerle çıkış olarak tanımlanan pinlerin 1 veya 0 olma durumunu kontol edebilecek seviyeye gelmiş olacağız.


ilk olarak kodları inceleyelim.



İlk olarak yapacağımız işleme göre 6. satırda yönergeleri yazdık. Bizim işimiz sadece I/O ile olduğu için sadece #include <avr/io.h> yönergesini yazdık.

Daha sonra 10-14 satırları arasıda mcu_init foksiyonu içinde mcu nin port ayarlarını yaptık. İleriki örneklerimizde de göreceğiniz gibi bu fonksiyon altında donanımsal ayarlamalar yapılmaktadır.

Yönergeleri ve donanımsal ayarları yaptığımıza göre artık programımıza başlayabiliriz. 18. satırdan başlayıp 32. satıra kadar devam eden programımızın 24. satırına dikkat edelim. Burada kullanılan 0X01==(0x01&PINC) ifadesinin biraz üzerinde durmak istiyorum.

Burada dikkat edilmesi gereken 2 nokta var 1. si giriş olarak ayarlanan pinlerin PORT şeklinde değilde PIN şeklinde kullanıldığıdır. Dikkat edilmesi gereken 2. nokta ise portc nin giriş olarak ayarlanan 1. pinindeki durumun nasıl kontrol edildiğidir. PIC de bu kontrol işlemi portc.f0 şeklinde yapılabiliyor ama avr de durum görüldüğü şekilde biraz farklı. Yapılan işlem biraz C bilmeyi gerektiriyor.

insanlar sizi eskisi gibi kullanmadıklarında değiştiğinizi söylerler...

Eğer bir aptala laf anlatmaya çalışırsan dışarıdan bakanlar iki aptalın sohbet ettiğini sanırlar.

Kamburlar ülkesinde sırtı düze sakat denir.


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious