Kullanıcı Adı: Beni Hatirla?
Şifre:
  Elektronizm > ATMEL > Genel > BASCOM AVR hakkında herşey
 


Şu an bu konuyu görüntüleyenler
0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Sayfa: [1]
  Yazdır  
Gönderen Konu: BASCOM AVR hakkında herşey  (Okunma Sayısı 7452 defa)
23 Şubat 2008, 21:00:59
strom
er
*

REP: 12

Mesaj Sayısı: 21
Nerden:

Üyelik Bilgileri Offline
« :»

Öncelikle herkese merhaba.Bu yazımda ATMEL programlamak için kolay ve güçlü bir dil olan BASCOM AVR programını inceleyeceğiz , programın kullanımı , komutları ...vs gibi özelliklerinin yanı sıra AVR serisi entegrelerin donanımında da bahsedeceğiz.
Yalnız bende AVR denetleyicilerine yeni başladım.Bu yüzden birden bütün konuları inceleyemem , programın bütün özelliklerini tanıtamam , dilin bütün yapılarını bilemem .... Ben burda sadece öğrendiklerimi paylaşacağım.Bilgilerim arttıkça burada anlatacağım konuların da niteliği artacak.
Benim de bu işlerde yeni olmam sebebiyle bir çok hatam ve eksiğim olabilir.Bu eksiklerim için şimdiden özür dilerim.
***Bir de belirtmek isterim ki "Teşekkür , Şikayet , Eleştiri" mesajlarınızı lütfen PM yoluyla iletiniz.Böylelikle konu temiz tutulmuş olur ve konudan yararlanmak isteyen arkadaşlar gereksiz yere mesaj okumak zorunda kalmaz.
Lütfen bu ufak uyarıyı dikkate alalım.
Hepinize hayırlı uğurlu olsun diyor ve anlatıma başlıyorum.

Not:BASCOM AVR programımızı
Linkleri Görebilmek İçin Lütfen Üye Olunuz Yada Giris Yapınız
atmel.4shared.com
adresinden indirebilirsiniz.(şifre: elektronizm.com)


Programın Özellikleri Çalıştırılması ve Genel Yapısı:
Öncelikle programın çalıştırlmasından bahsedeceğiz.Özelliklerine daha sonra değineceğiz.
Programı
Linkleri Görebilmek İçin Lütfen Üye Olunuz Yada Giris Yapınız
atmel.4shared.com
adresinden indirip kurduktan sonra C:\Program Files\MCS Electronics\BASCOM-AVR dizininden programımızı çalıştırıyoruz.
Karşımıza programı tanıtan bir ipucu kutusu çıkıyor.

***Bu kutuda NEXT>> düğmesine tıklayarak program hakkında farklı ipuçlarını görebiliriz.
***Eğer bu kutuyu bir daha görmek istemiyorsak sol altta bulunan "Show tips at startup" yazısının önündeki işareti kaldırabiliriz.
Kutuyu kapatmak için CLOSE butonuna tıklıyoruz ve program kod yazımına hazır bir halde karşımıza geliyor.Arık gerisi sizin programcılığınıza kalmış

Programı açtığımıza göre artık yavaş yavaş kod yazımına başlayalım.

Öncelikle yapımı basit ama bize program hakkında fazlaca bilgi verecek bir kodla başlayalım.
Evet tahim ettiğiniz gibi bir flaşör programı yazacağız.B portunun 0. bacağına bağlı led'i .5sn aralıklarla yakıp söndüreceğiz.

Kod:
'Tanımlamalar-------------
$regfile "2313DEF.DAT"                                      'Kullanılacak  Pi'in modeli belirleniyor.
$crystal = 8000000                                           '8MHZ kristal kullanacağımızı pic'e bidiriyoruz

'Port Giriş - Çıkış ayarları
Config Portb = Output                                       'portb çıkış


'Anaprogram

Do                                                          'DO - LOOP arası sonsuz döngü

Portb.0 = 1
Waitms 500
Portb.0 = 0
Waitms 500

Loop

Yukarıda verilen kodu (Bu seferlik) kopyala yapıştır yapın ve F7(Compile) tuşuna basın.
Dosyayı yeni açtığımız için dosya isimsizdir.(NONAME)Bu yüzden bizden dosyaya bir isim vermemizi isteyecek.Dosyayı isim verip kaydettikten sonra otomatik olarak kod'unuz derlenecektir.
Artık dosyayı kaydettiğiniz yerden .HEX uzantılı dosyayı alabilirsiniz.

Bir sefere mahsus Koyala-Yapıştır yaptık.Fakat bu bizepek bişey öğretmez.Bu yüzden yeni bir sayfa açıp kodu elinizle yazın.
Kodu yazarken eminimki biraz şaşıracaksınız.Özellile daha önce Pic derleyicilerini kullandıysanız.
Dikkat ettiyseniz program , yazdığınız kod veya ifadeleri otomatik olarak biçimini değiştiriyor.Mesela "anaprogram" yazıp başka satıra geçtiğiniz anda yazımız "Anaprogram" şeklini alıyor.Aynı şekilde "ANAPROGRAM" yazarsakta  "Anaprogram" halini alıyor.
Bu yüzden (Türkçe karakter kullanmadığınız taktirde) büyük-küçük yazımına dikkat etmenize gerek yok.
Bir diğer değişikli ise kodun karşısına yazdığınız youmları ne kadar öte veya beri yazarsanız yazın otomatik olarak yerini değiştiriyor olması.Mesela

'Tanımlamalar-------------
$regfile "2313DEF.DAT"                                      'Kullanılacak  Pi'in modeli belirleniyor.
$crystal = 8000000 

yukardaki kod parçasında 'Tanımlamalar yorumu başa yazıldığı için sona kaydırılmamış ama 'Kullanılacak.... yorumu otomatik olarak şu anda bulunduğu yere taşınmış.Biz istersek kodun önüne 1 boşluk ister 5 boşluk bırakarak yazalım sonuçta yorumumuz yukarıdaki örnekteki gibi  yerini alacaktır.
Program daha bunlara benzer birçok biçimlendirme yapabilmekte.
Bütün bunlar ne işe yarar derseniz kodun okunabilirliğini büyük ölçüde arttırır.

Programın son olarak bahsetmek istediğim bir özelliği var.Bu özellik BASCOM AVR programını benzerlerinden ayırmakta ve yeni başlayanların öğrenmesini kolaylaştırmakta.
Bu özelliğimiz tahmin ettiğiniz gibi similasyon özelliğidir.Bu özelliği gelecek mesajda anlatacağım.

...
Yazının devamında görüşmek üzere
« Son Düzenleme: 23 Şubat 2008, 21:21:31 Gönderen: strom » Logged
24 Şubat 2008, 15:14:38
strom
er
*

REP: 12

Mesaj Sayısı: 21
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #1 :»

Herkese merhaba.
Bu yazımda programın similasyon özelliğine  değineceğim.
Lafı fazla uzatmadan anlatmaya başlıyalım.
Programımızı yazdıktan sonra derlemeden F2 tuşuna basalım.Karşımıza

penceresi çıkacaktır.
Bu pencerenin anlamı kodu derledikten sonra çıkan .OBJ ve .DBG uzantılı dosyaları programın bulamamasıdır.
.OBJ uzantılı dosya BASCOM programının similatörü .DBG uzantılı dosya ise AVR Stduio programında hata ayıklama bölümü için kullanılır.
Şimdi F7 tuşuna basarak programı derleyelim.Eğer programımız hatasız bir şekilde derlendiyse F2 tuşuna basarak similasyonu başlatalım.Similasyon programını ilk çalıştırdığımızda karşımıza

uyarı penceresi çıkacaktır.
Bu pencerenin bize ne anlatmak istediğini maalesef bilmiyorum 
Pencerenin sol alt köşesinde bulunan kutucuğa işaret koyarak pencerenin bir daha açılmasını engelleyebiliriz.
Bütün bunlardan sonra nihayet similasyon programımız açılır.
Penceremizin genel yapısı

şeklindedir.
Yazdığımız program altta beyaz fon üzerinde görülmekte.
Şimdi similasyonu başlatmak için neler yapmamız gerektiğinden bahsedelim.
Resimdeki turuncu kutu içine alınmış bölüm similasyonu kontrol eden ana bölümüdür.Buradan similasyonu başlatır , durdurur , adım adım inceleriz.
İlk olarak similasyonu başlatmak için kare şeklinde olan "stop program" butonuna basıp aynı düğmenin yanındaki "step in to code" düğmesine tıklayalım.
Dikkat edersek kodumuz bulunduğu yerin en üstünde bir ok belirdi.Bu ok similasyon sırasında kodun hangi bölümünde bulunacağımızı belirliyor.
Bundan sonra "step in to code" düğmesine tıklayarak similasyonu adım adım takip edebliriz.
(Not:Yazdığınız bazı programlarda yukardaki anlattığım gibi yapıp "step in to code" düğmesine tıkladığınızda programın ilerlediğini gösteren okumuzun hareket etmediğini görebilirsiniz.
Bu durumun sebebi;
BASCOM'da ki bir kodun işlemesi için birçok ASM komutu çalışmakta.Bu her bir kodun içerisinde de bazı gecikmeler olmakta.Hatta biz programda gecikme kullanmasak bile kullandığımız ek donanımların donanımsal ihtiyaçları gereği program biz yazmadan bazı gecikmleri koyar.
Bu yüzden bize tek bir komut gibi gözüken BASCOM komutlarında Ok'umuz uzun bir süre bekleyebilir.
Bunu anlamının basit bir yolu var.Similasyon penceresinde en sağda bulun Registerlerin(Yazmaçların) durumunu gösteren ve resimde mor renkle işaretlenmiş kısımda bu durum açıkça görülmekte.Biz her "step in to code" düğmesine tıkladığımızda yazmaçların durumu birer birer azalmakta.
Mesela Waitms 500 kumutu işlerken R31 , R30 , R24 , R25 , R26 yazmaçlarının içeriğinin değiştiğini göslemleyebilirsiniz.
R31 yazmacı azalıp 0 olduğunda R30 yazmacının değeri 1 azaltılıyor.R30 yazmacı her 0 oluşunda R24 yazmacı 1 azaltılıyor.24 yazmacı 0 olduğunda 25 yazmacının içeriği 1 azaltılıyor.Son olarakta R25 yazmacı 0 olduğunda R26 yazmacı 1 azaltılıyor.R26'ı da 0 olduğunda similasyon bir sonraki komuta geçiyor.
Bu durumda "step in to code"  düğmesi bizin için yetersiz kalıyor.(Her komut için bir kez basamayız değil mi?)Bu durumda turuncu renkle işaretlenmiş kontrol bölmesinin en başındaki "Run" tuşunu kullanabiliriz.)
Similasyon programımız sadece bir Ok'u hareket ettirmekten daha fazlasını yapıyor.Benim inceledeiğim kadarıyla aşağıdaki donanımları destekliyor;
-LCD
-PortB'ye bağlı led'ler
-Analog giriş
-Comparator(Karşılaştırıcı) voltaj ayarı
-Keypad
-Seri Terminal
-Kesme uygulamaları
Bu uygulamalardan ilk beşini başka bir pencereden kontrol ediyoruz.Bu pencereye bordo renkli çizilmiş ve LCD resmi olan düğmeden ulaşıyoruz.

Resimde de görüldüğü çok sade bir kullanımı var.Özellikle LCD uygulamalarınız için çok güzel bir araç.
Seri terminal uygulamasını sarı renkli çarpı işareti olan bölümden takip edebiliriz.
Son olarak programa kesme uyarısını verebilmek için resimde mavi kalemle çizilmiş , üzerinde "İnterrupts" yazan düğmeyi kullanabiliriz.
Similasyon programında son olarak bahsetmek istediğim yazmaçların ve hafıza birimlerinin içeriğinin izlenmesi.
Aslında bu konuya yukarda az da olsa değindik.
Programın en sağ tarafında yazmaçların durumunu gözleyebiliyorduk.
Resimde yeşil renk ile çizilmiş kutucukla da sağ tarafta yazmaçların mı yoksa hafıza birimlerinin mi gösterileceğini belirliyor.

Bu yazımızın da sonuna geldik.Bir sonraki yazımızda ilk yazıda verdiğim flaşör örneğini inceleyip LCD ve seri iletişim uygulamalarından bazılarını inceleyeceğim.
Görüşmek üzere....
Logged
24 Şubat 2008, 15:14:38
simyaci
er
*

REP: 0

Mesaj Sayısı: 6
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #2 :»

BASCOM AVR yazısının devamını dört göz ile baklıyorum bascom pic  proton a çok benziyor .ayrıca smulasyonun üzerinde olması çok ğüzel  özellikle  çözümlü örnekler verirsenız daha iyi olur
Logged
24 Şubat 2008, 15:18:01
strom
er
*

REP: 12

Mesaj Sayısı: 21
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #3 :»

BASCOM AVR yazısının devamını dört göz ile baklıyorum bascom pic  proton a çok benziyor .ayrıca smulasyonun üzerinde olması çok ğüzel  özellikle  çözümlü örnekler verirsenız daha iyi olur
BASCOM Proton'a sadece ucundan benziyor.Protonla kıyaslanamayacak kadar ek özellikleri var.Özellikle daha sonra değineceğim fonksiyonlar konusunda da bunu göreceğiz.
Fonksiyonlar BASCOM dilini normalden çok güçlü hale getiriyor.

Ekleme:Bu arada belirtmek isterim ki bu konu yalnızca benim paylaşım yaptığım biryer olmasın.
BASCOM hakkında bilgisi olan herkesin katkılarını bekliyorum.
« Son Düzenleme: 25 Şubat 2008, 09:42:33 Gönderen: strom » Logged
01 Mart 2008, 10:04:46
simyaci
er
*

REP: 0

Mesaj Sayısı: 6
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #4 :»

Alıntı
Fonksiyonlar BASCOM dilini normalden çok güçlü hale getiriyor.

bu fonksıyonlar konusunu bıraz acarmısın .
« Son Düzenleme: 06 Mart 2008, 13:48:59 Gönderen: sezer1247 » Logged
01 Mart 2008, 22:11:53
strom
er
*

REP: 12

Mesaj Sayısı: 21
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #5 :»


Alıntı
Fonksiyonlar BASCOM dilini normalden çok güçlü hale getiriyor.

bu fonksıyonlar konusunu bıraz acarmısın .

Hocam hepsini anlatacam ama biraz zaman lazım.
BASCOM da bazı donanımların kullanımlarını inceliyorum.Bunlar;
-LCD
-Seri Port
-MMC kart
-Grafik Lcd
Şu an MMC karla haşır neşirim.Yazma okumayı başardım ama mantığını hala kavrayamadım.O bittiği zaman AT90S2313 hakkında detaylı bilgi ve yukardaki donanımların kullanımını açıklayacam.

İlgin için sağol.
« Son Düzenleme: 06 Mart 2008, 13:48:44 Gönderen: sezer1247 » Logged
06 Mart 2008, 06:03:17
kes888
er
*

REP: 0

Mesaj Sayısı: 1
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #6 :»

programda similayonu nasıl kulaniyoruz bulamadim onu birde bacis kodlari çalısıyor küçük bi yazdim çalişti ama simile edemedim isisde ettim
Logged
06 Mart 2008, 23:37:44
strom
er
*

REP: 12

Mesaj Sayısı: 21
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #7 :»

programda similayonu nasıl kulaniyoruz bulamadim onu birde bacis kodlari çalısıyor küçük bi yazdim çalişti ama simile edemedim isisde ettim

Kardeş kusura bakma ama sen yazıyı okudun mu?
Okuyup anlamadıysan eyvallah , nerde takıldıysan yardım ederim.Hem böylelikle geriden gelenlere de daha sağlam kaynak olur.
Eğer okumadan soruyorsan diyecek birşey yok.O kadar yazıyı boşa yazmışım...
Neyse.
Yakın zamanda son yazımı da yazıp konuyu belli bir yere getirecem.
Sağlıcakla kalın...
Logged
08 Nisan 2008, 18:25:10
simyaci
er
*

REP: 0

Mesaj Sayısı: 6
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #8 :»

Alıntı
Yakın zamanda son yazımı da yazıp konuyu belli bir yere getirecem.
Sağlıcakla kalın...
Alıntı

           bir ğelişme varmı ?
Logged
03 Eylül 2008, 12:30:47
feridund
er
*

REP: 1
Avatar Yok

Mesaj Sayısı: 5
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #9 :»

devamını 8 hatta 88 gözle bekleyenlerdenim. sonsuz saygı ve teşekkürlerimle
Logged
28 Mayıs 2010, 12:04:20
kaiser84
er
*

REP: 0
Avatar Yok

Mesaj Sayısı: 5
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #10 :»

bu konuyu videolu anlatımla anlatsanız,link olarak ekleseniz daha yararlı olur kaatindeyim,benimde atmellere merakım var ancak türkçe kaynak bulmak gerçekten zor olanıda iyi anlamak gerekiyor,kolay gelsin...
Logged
14 Aralık 2010, 12:55:04
necnec
er
*

REP: 0
Avatar Yok

Mesaj Sayısı: 1
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #11 :»

SLM hocam biz bascom ile atmel işlemcileri programaya çalışıyoruz sitedeki bir kaç yazınızı okuduk ama devamını bulamadık.Bize yardımcı olacak basit örnekler,notlar veya tavsiye edeceğiniz bir kitap varmı acaba.ŞİMDİDEN ÇOK TEŞEKKÜR EDERİZ KOLAY GELSİN.İYİ ÇALIŞMALR.

AHMET ŞAFAK   ahmetsafak2006@hotmail.com
Logged
11 Mayıs 2011, 12:40:20
nbiszr54
er
*

REP: 0
Avatar Yok

Mesaj Sayısı: 1
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #12 :»

bascomun kndi kütüphanesinde var ama
$lodersize 512
$hwstack 100
$swstack  75
$frame 40
$eepleave ne demek
Logged
30 Mayıs 2011, 17:17:10
kurusaray
er
*

REP: 0
Avatar Yok

Mesaj Sayısı: 1
Nerden:

Üyelik Bilgileri Offline
« Yanıtla #13 :»

Arkadaşlar bascom avr değişken global olarak nasıl tanımlıyoruz. Dim olark tanımladığım değişken local diye hata veriyor.
Logged
Sayfa: [1]
  Yazdır  
 
Gitmek istediğiniz yer:  

MySQL Kullanıyor PHP Kullanıyor Elektronizm | Powered by SMF 1.1.13.
© 2005, Simple Machines LLC. All Rights Reserved.
XHTML 1.0 Uyumlu! CSS Uyumlu!
Bu Sayfa 0.267 Saniyede 20 Sorgu ile Oluşturuldu (Pretty URLs adds 0.013s, 2q)

Elektronizm Çöl Atesi v3 by rallyproco