Teknoloji Ekibi

Elektronik Dünyası => Mikrodenetleyici ve Mikroişlemciler => ATMEL => Konuyu başlatan: Karadağ - 19 Mayıs 2008, 17:51:38

Başlık: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 19 Mayıs 2008, 17:51:38
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 ;)
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Uykusuz - 19 Mayıs 2008, 17:58:08
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.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 19 Mayıs 2008, 18:25:30
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.

(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fwww.postimage.org%2FPq1kE1cr.jpg&hash=f978da920526e63fedb33d089f60ab8481b8bfa4) (http://www.postimage.org/image.php?v=Pq1kE1cr)(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fwww.postimage.org%2FaVgqT7S.jpg&hash=659825aa4c2e10161342f2762973879391cfb5a7) (http://www.postimage.org/image.php?v=aVgqT7S)(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fwww.postimage.org%2FaVgroyJ.jpg&hash=6329b193376c0523b1b0aa4abcc7b8a828d6e042) (http://www.postimage.org/image.php?v=aVgroyJ)
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 20 Mayıs 2008, 09:12:42
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:)
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: ali kaptan - 21 Haziran 2008, 11:30:09
bence mükemmel bi çalışma başlatmışsın.devamını merakla bekliyor olacağım.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: çavuş - 21 Haziran 2008, 13:25:21
bende meraklıyım böyle işlere.diğer konuları dört gözle bekliyorum.faydalı olacağınada inanıyorum.
teşekkürler...
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 28 Haziran 2008, 11:17:24
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."
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: 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...
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 17 Ağustos 2008, 00:34:29
aramıza hoşgeldin baron66 şu aralar biraz yoğunum işlerim hafifleyince konuya devam edicem
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 17 Ağustos 2008, 11:19:01
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.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: baron66 - 20 Ağustos 2008, 22:05:07
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.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 21 Ağustos 2008, 11:20:54
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.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: baron66 - 25 Ağustos 2008, 00:38:43
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.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 25 Ağustos 2008, 16:02:49
teşekkürler baron bekliyorum
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: baron66 - 26 Ağustos 2008, 18:01:30
feridun savefile yi bitürlü kullanamıyorum. update ediyorum dosyayı ama link alamıyorum. bana yardımcı olursan sevinirim.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Uykusuz - 26 Ağustos 2008, 18:54:09
sevefile bazen böyle sorunlar çıkarıyor malesef :(
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: baron66 - 26 Ağustos 2008, 19:05:16
NİHAYET FERİDUN YAPTIM
İŞTE PROGRAM : http://www.savefile.com/files/1751248
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: UNIQUE - TA5DF - 27 Ağustos 2008, 12:02:07
teşekkürler baron66 içindeki örnekler epey işime yarayacak.
sağol kardeşim.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: baron66 - 27 Ağustos 2008, 12:43:25
paylaşmak lazım feridun. zamanında biz paylaşacak kimse bulamadık. öğrendikten sonra da paylaşmak lazım yani.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 18 Kasım 2008, 18:21:46
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.

(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg65.imageshack.us%2Fimg65%2F4263%2Favrdersleri1vw0.png&hash=6eb943784983f75591dba8b2f288f50246b416d1)

İ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.

Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: okantex - 30 Kasım 2008, 12:29:37
merhabaalar
bend de bu isi ogrenmeye adayşm , atmega644 programlayabilmek istiyom.
fakat bu yukaridakişler karisik geldi
once  c +  falan mi ogrenmem gerek. fortran77 ve picprog iyi becerebiliyorudm bir zamanlar
bunda basarili olmak icin nerden baslamaliyim
su ac kapa parantezzler ve biren fazla = olmasi kafami karistiriyor,program kodlarini anlatan biseyler le mi baslamak gerek.
tesekkurler
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 30 Kasım 2008, 12:32:04
merhaba öncelikle c öğrenmenizi tavsiye ederim
bunun için turboc indirin ve ilk alıştırmalarınızı burada yapın kabaca c yi anladıktan sonra denetleyici ile çalışmaya başlayın
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: erbogan - 01 Ocak 2009, 22:38:59
aranıza yeni katıldım arkadaşlar herkese sevgiler saygılar ayrıca mutlu yıllar :))
bende öğrenmek istiyorum...
c değilde c++ bilsek olmuyor mu?
ayrıca bu atmel için programlayıcı+deneme kartı (yada breadboard ile kurulabilecek bişeyler) önerebilirseniz cok daha iyi olacak...
pic bilgim yok hiç...
pic bilmem gerekir mi bunları anlamak için?
saygılar iyi çalışmalar
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: Karadağ - 01 Ocak 2009, 22:49:10
ilk olarak aramıza hoşgeldin

c,c++,c#,java,pascal v.b. fark etmez bu konuda bahsettiğimiz derleyici hepsini derliyor.

programlayı, deneme kartı v.b. piyasada pek çok var ama ben çok basit olan pararlel port programlayıcıyı kullanıyorum ve denemeler için
bredboard a devre kuruyorum.

Pic bilmenize gerek yok ama denetleyiler hakkında bilgi sahibi olmanız gerekli bunun için 8051 denetleyiciler hakkında üniversitelerde bulunan
notları kullanmanızı tavsiye ederim. bunun için bir örnek :http://rs21.rapidshare.com/files/73822445/8051_ders_notlari_tukce_1_.rar
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: enexs - 15 Ocak 2009, 22:17:07
merhaba arkadaşlar
ben daha önceden pic programlamayla uğraşmıştım ama artık atmele geçmek onunlada bir iki bişey yapmak açıkcası ülkemizdeki bir mana veremediğim pic imparatorluğunu ve tekelini yıkmak istiyorum :D netekim yurt dışındaki birçok mikrocontroler project form sitelerinin tartışılmaz hakimi atmeldir. bu bağlamda google amcada araştırma yaparken sizlere rastladım ve bana yardımcı olabilecek birilerinin olduğunu görünce çok sevindim. dediğim gibi pic le uğraştım ve c ye hakimim. ama atmel konusunda daha çok yeniyim.  winavr konusundada problemlerim var daha doğrusu proje oluşturp derleyemiyorum yukardaki led projesini indirip çalıştırdım ve onu template olarak kullanabilirim ama bir yere kadar. şimdi size proje oluşturuken yaptığım işemleri sıralayacağım yanlış yaptığım yeri bana sölerseniz çok memnun olurum teşekkürler.
1. makefile çalıştır mcu dan denetleyiciyi seç main file name projenin adını yaz  ve kaydet.
2.programmer's notepad i aç yeni proje oluştur adını yaz ve kaydet.
3. projenin üstüne gel sağ tıkla ve makefile ekle
(bundan sonra birde c uzantılı bir notepad ten bahsediliyor ama bunu heralde makefile den oluşturmam gerekiyor bunu beceremediğim için normal bir notepad oluşturup bun projeye ekliyorum heralde probelm burda)
4.c uzantılı bu notepadi de projeye ekle ve bun açıp kodları yaz
5. tools dan make all de
bunları yapıyorum ve malesef derlemiyr yardımlarınızı bekliyorumm
teşekküler
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: kurusaray - 16 Kasım 2009, 22:01:50
projenin adı ile makefiledeki "target" karşısındaki isim aynı olacak.
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: elsidi - 24 Şubat 2010, 21:22:50
WinPic800 türkçesini nereden indirebilirim?
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: TurkzeuS - 01 Mart 2010, 22:28:23
Hala bulamadıysanız burada bişeyler var...

http://www.izoelektronik.com/winpic-800-361.htm
Başlık: Ynt: Atmel programlamayı öğrenelim:)
Gönderen: huseyin05 - 18 Mayıs 2012, 16:41:17
Karadağ hocam makefile dosyası nasıl oluşturuluyor. Örnek bir proje ile resimli anlatım yapabilirmisiniz?
Saygılar.