avatar_ete

Basic'e nasıl başlanır, Gerekli programlar ve kurulumlar

Başlatan ete, 07 Şubat 2012, 11:32:26

ete

Yeni başlayanlar yada başlayıpda nasıl olacağını bilmeyenler için Basic de program yazmak ve derleme yapmak (hex dosyasını elde etmek) için neler yapılması gerektiğini açıklayan sabit bir konu başlığı açayım istedim.

Pic işlemclilerle çalışmak için işlemcinin içine bir program atmanız gerekiyor. Bu atılacak program HEX uzantısına sahip olmalıdır. Hex uzantılı programların işlemcilere yazılması programlayıcı denilen devreler ve bilgisayarınızda bu programlayıcıya hükmeden bir arayüz programı ile yapılmaktadır. Bu işin nasıl yapıldığına geçmeden önce bir programın nasıl oluşturulduğu ve oluşan programdan nasıl hex dosyasının elde edildiği konusuna bir göz atmamız gerekecek.

Açıklamaya geçmeden önce aşağıdaki açıklamaların yalnızca PBP Versiyon 2.60 ve altı için olduğunu söylemem gerek. Kısaca PBP Versiyon3.0 ve üzeri için bu açıklamalar geçerli değildir. Üzerinde çalışmadığım için bu konuda bir açıklama veremiyorum.

Basic dilinde (PBP) program yazıp sonra programa bağlı hex dosyasını elde edebilmek için önce bir program yazmanız ve yazdığınız  programı derlemeniz gerekiyor. Derleme yapılabilmesi için için 3 şeye ihtiyaç var. Bunlar;
1. MCS editör programı: Bu bir editör programıdır. Basic dilinde programları yazabilmenize ve onları düzeltip kayıt edebilmenize ve istediğiniz zamanda programlardan hex dosyasını elde etmenize imkan sağlar. MCS editör programı ücretsizdir. Aşağıdaki linkden yüklenebilir.   

http://www.mecanique.co.uk/software/mcsinstall.exe

Bu setup programını yükledikten sonra kurulumunu yapmanız gerekiyor. Kurulm otomatikman Program Files klasörü içine yapılmaktadır. Yerini değiştirmemenizi tavsiye ederim.

2. Basic Derleyicisi; Bu derleyiciyi artık ya demo olanını yada ilaçlı bir sürümünü bulup C:\PBP şeklinde C ana klasörüne yüklemeniz gerekiyor. Bu derleyiciyi farklı bir adrese kurarasanız yol adının uzun olmamasına dikkat ediniz aksi halde derleme esnasında bir çok sorun ortaya çıkacaktır. Zaten C:\ ana klasörüne kurulma nedeni yol adının mümkün olan en kısa şekilde tutulmasını sağlamak amacını gütmektedir.
Derleyici ücretli bir programdır. Ya satın almanız yada piyasada dolaşan ilaçlı versiyonalrdan birisini bulmanız gerekiyor. Ayrıca deneme çalışmaları için kendi sitesinde Demo sürümü bulunmakta olup sınırlı sayıda satır kullanımına müsaade etmektedir.

3. Basic dilinde yazılmış bir program. >Elbette program yazabilmek için komutları ve nasıl kullanıldıklarını bilmek gerekiyor.
    Bunun için hazılramış olduğum basic derlerinden yararlanabilirsiniz. Toplam 14 dersden oluşan bu seti forum'un  "Pic Basic Dersleri" bölümünden yüklenebilir. Burada basic de bir program yazdığınızı varsayacağız.

Bu üç unsur tamamlandıktan sonra derleme yapabilirsiniz. Tabiiki derleme yapmadan önce MCS programında bazı düzenlemeler yapmak gerekecektir. MCS bir editör dür kendi başına derleme yapmaz yapamaz. Ya Basic derleyicisini yada MPASM yi kullanır. Dolayısıyla Basic derleyicisini kullanabilmesi için ona yerini göstermek gerekir. MCS de ana ekranda ,
View menüsünde "Compile & Program Options" şeklinde bir seçenek var. Onu seçin. Karşınıza 3 butonlu bir seçenek gelecektir. Bunlar Compiler - Assembler ve Programmer. En sondaki önemli değil. Ama ilk ikisi derleme için önemli.
Compiler seçeli gelir zaten. Altında "find manually" veya yanında "find automatically" diye iki buton var. Bence manually seçin ve açılan pencereden Basic derleyicisinin adresini gösterin. Ekranda C:\PBP şeklinde gösterilmiş adreside görmeniz gerekiyor.
64 bit makinalar Basic derleyicisini kullanamıyor. Derleyici 32 bit çalışıyor çünki. Bunun yerine MPASM kullanmak zorundalar.
Ayrıca 18F seriside MPASM kullanılarak derlenmek zorunda. Bu nedenle en iyisi ortada yer alan Assembler seçeneğinide seçip onada MPASM klasörünün yerini gösterin.  Makinanızada MPLAB kurulu ise orada MPASM klasörü olması gerek. Ama makinanızda Proteus kurulu ise orada Tools menüsünde MPASM klasörü yer almaktadır. Bunlardan birisini gösterseniz yeterli.
Artık derleme yapacak hale gelmiş oluyorsunuz. Programı yazın yada yükleyin , yukardaki kutucukta uygun işlemciyi seçin ve solda yer alan derle butonuna tıklayın. Programda hata yok ise derleme sorunsuz yapılacaktır.

Şimdi de 64 bit makinalar için ve ayrıca 18F serisinin derlenmesi için gerekli açıklamaları yazalım.
Bu işlem view menüsünde MPASM kutusu seçilerek yapılacaktır. Bu şekilde derle butonuna bastığınızda makina direk derleme işlemine geçecek ve muhtemelen bir takım hatalar bulacaktır. Bunun sebebi şudur;
Derleme işleminde Basic hem işlemcinin orjinal INC uzantılı dosyasını hemde MPASM içinde yer alan P18Fxxx.INC dosyasını kullanır.  Her iki dosyada da sigorta ayarları konusudna komut satırları bulunmaktadır. Bu nedenle birinden birisi kapatılması gerekir. Aksi halde aynı komut satırı iki defa işlenmiş olurki derleyici bu durumda owerwrite hatası verir. Bu hatayı önlemek için yapılması gerekenler şunlardır.
1. Her şeyden önce programınızda baş taraflarda yazdığınız sigorta ayarları formatını MPASM 'ye göre değiştirmek gerekiyor.
Format'ın nasıl olduğunu  derleyici kalsöründe yar alan 16Fxxx.INC dosyasını açarak görebilirsiniz.
Örnekle açıklayalım. PBP kalsöründe yer alan 16F628A.INC dosyasını MCS içinde açıyorum. Alt kısıma doğru 1 adet config satırı görüyoruz. Bu satırda şunlar yazılı;
;        __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
öncelikle bu satırı başına bir ";" işareti koyarak kapatıyor ve dosyayı geri kayıt ediyoruz.

Sonra kapatılan satırdaki formatı programımızda sigorta ayarları formatı olarak kullanıyoruz.
Şöyle,
@ __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
@ işaretinden sonra bir boşluk verilecektir bu verilmez ise derleme hatalı sonuçlanır.
Bu satıra başka sigorta ayarlarıda eklenebilir. Yapılması gereken bir   &  işareti ekleyip sigorta ayarını _xxxx şeklinde eklemek olacaktır.

Bu şekilde hazırlanmış program artık MPASM de derlenebilecektir.  Bu sistemi hem 32 bit makinalar hemde zorunlu olarak 64 bit makinalar kullanabilirler.

18F serisi zaten zorunlu olarak MPASM ile derlenmektedir. Bu nedenle benzer şekilde işlemciye ait xxxx.INC dosyasında config satırları kapatılacak benzer formatta kendi programınızda onları yeniden yazacaksınız. Derleme işini daha sonra yukarıda açıklandığı şekilde yapabilirsiniz.

Oluşturulacak HEX dosyası daima bas yada pbp uzantılı dosyanın olduğu klasör içinde oluşturulur.
Gelelim bu dosyanın pic içine atılmasına.

Bu iş için programlayıcı kullanılması gerektiğini söylemiştik. Programlayıcıların en iyisi işlemcileri üreten Microchip firmasının ürünü olan PicKit2 programlayıcısıdır. Orjinalini alabileceğiniz gibi piyasada bulunan klon tabir edilen kopyalarından birinide kullanabilirsiniz. Hatta kendinizde yapabilirsiniz.
Bu programlayıcı USB portundan çalışır ve kendine ait birde arayüz programı bulunur. Cihaz şayet ZIF soket dediğimiz (çoğu klon programlayıcılarda ZIF soket bulunmaktadır ) sokete sahip ise üzerine programlayacağınız işlemciyi takıp sonra cihazı USB protuna bağlayınız. Böylece cihaz üzerindeki işlemciyi tanıyacak ve ekranında size hangi işlemci ile çalıştığınız otomatik olarak gösterecektir. Sonra Dosya yükle (file) menüsünden işlemciye yazılacak hex dosyasının yeri bulunarak dosya yüklenir.
Ekranda bulunan seçeneklerden "WRITE" butonu yardımı ile yazma işlemi başlatılır.
Bir kaç saniye sonra yazma işlemi tamamlanır ve akrana başarılı olduğu yada hata varsa bir hata oluştuğu ikazlarından birisi çıkar.
Hatasız yazıldığını varsayarsak, işlemciyi zif soketten çıakrtıp kendi devresine takıp sistemi çalıştırabilirsiniz artık.

Hepsi bu kadar.
Her kese kolay gelsin.
Ete




kudretuzuner

Merhaba
ETE bey klavyenize sağlık.Herzaman olduğu gibi,değerli bilgileri,biriktirmekte olduğum ETE dosyasına attım.Teşekkürler.

pwm.c

ETE hocam, benim bilgisayarda pbp 2.50a kurulu. 2.60 versiyonunun yaması olmadığı için kurmamıştım ve sonradan burada yayınlamışsınız onu indirdim. birde pbp3 versiyonuda çıkmıştı.
bana bunlardan hangisini kullanmamı önerirsiniz?
ben normalde pic programlamak için proton basic ve CCS C kullanırım. pbp yu takviye olarak çalışıyorum. pic basic hakkındaki istek projeleri derlemek için bazen gerekiyor. program yazdığım dier derleyicilerin herzaman son versiyonlarını güncel tutmaya çalışıyorum ama bazıları sorunlu oluyor. pbp nun yeni versiyonlarında böyle durumlarla karşılaştınız mı? eğer sorun varsa boşuna silip tekrar kurmak istemiyorum. 2.50a ile devam ederim.

birde, daha önceki yazılarınızda protonun sorunlu olduğunu burada söylemiştiniz. bu sorunların bazılarının ilaşlamadan kaynaklanabileceğinide yazmışsınız. ben fazla sorun yaşamadım. sadece proteusla ilgili problemler oluştu. eğer gerçekten ilaşlamayla ilgili bişeyler varsa ilaşsız proton kullanmak istiyorum. "proton metal" diye bir dosya vardı. ilaşlama lisans anahtarı üreten bir programla yapılıyor yani proton derleyicisine müdehale etmiyor. bunu 4shared sitesinde bulabilirsiniz. eğer deneme imkanız varsa sizin görüşlerinizde bizim için çok önemli.

teşekkürler.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

ete

1983 lü yıllarından beri bilgisayar ile uğraşıyorum.  İlk yıllarda öğrendiğim kelimelerin başında "BUG" yani böcek denilen ve yazılımlardaki kusurları ifade eden kelime gelmektedir. Bu bug lafı günümüze kadar süregeldi. Konuyu derleyicilerdeki BUG lara bağlayacağım.
Bana göre kusursuz derleyici yok maalesef. Sürekli düzeltilen derleyiciler var. Bakınız windows sürekli güncelleme yayınlıyor. Nedir bu güncellemeler? önceden görülmeyen yada sonradan ortaya çıkan kusurlardır. Yazılım insan ürünüdür ve kusurları olması son derece doğaldır.
Peki ne yapmalıyız, bence en az kusurlu olanı tercih etmeliyiz. 
İlk Pic ile tanıştığımda daha önceden Basic ile PC bazında uraştığım için bende Basic programlamayı tercih ettim. Proton la başladım ama bir müddet sonra ortaya çıkan derleme kusurları beni yıldırdı. Sonra pro yu keşfettim ve baktım ki çok az kusuru var. Onunla devam ettim. Şimdi otursam protonla sıkıntı çekmeden program yazabilirim. Biraz manualine bakarım o kadar. Ama her sene protonla bir kaç denemem oluyor ve hep sıkıntı yaşıyorum. Tabiiki basit programlar yazarsanız hiç bir sıkıntıyı göremeziniz. Komplike programlarda bu sıkıntılar ortaya çıkmaktadır. Ben iki derleyiciyide izliyorum ama hep (sorunlu olarak bir başka derleyici kullanıncaya kadar) pro kullanacağım. Bu arada zaman zaman C dilinede merak salmıyor değilim. Ama o yazım protokolü bana saçma geliyor ve aklım basmıyor. Yoksa mantığını ve komut kullanımını anlıyorum. Ancak ikisini karşılaştırınca epeyce bir algoritma farklılığı ortaya çıkıyor ve insan alıştığı yolda gitmek istiyor. BU nedenle onuda öğreniyorum ancak elimin altında tutuyorum birgün belki lazım olur diye.
Her neyse tercihim pro yönünde. Bir sürü eksik komutu var deniliyor ama zaten pic işlemcisi için bunu kullanıyorsunuz. İşlemcininde olanakları sınırlı . Bana göre pro da tek sorun integer matematiği ve 32 bit işlem yapılamaması. Bunuda 18F serisinde aşmışlar. Çok sıkışırsam 18F serisinde bir işlemci kullanırım işimi yine hallederim. Adamların bu sistemi kullanmasınında bir amacı var elbette 16 F serisinde hafızalar kısıtlı hal böyle olunca boşuna yapmayalım demişler herhalde.
Pro nun ortalıkda dolaşan son versiyonu 260 dır ve bana göre hemen hemen sorunsuzdur. Bazı klasik sorunların haricinde elbette. Nedir dersen pro nun genel hastalığı olan komut işletimi bitmeden kesmeye atlayamaması (gerçi proton da bu konuda başarılı diyemeyeceğim). Serin komutlarında timeout ve label sisteminin çalışmaması gibi sorunların dışında pek sorun görmüyorum. Bu nedenle 260 sürümünü tavsiye ederim. Sonradan bu sürüm için 3 adet yama çıkartıldı A-B-C diye. Yamalarıda yüklersen fena olmaz.
Gelelim son sürüm olan 3 sürümüne. Bu sürüm açıkçası bana çokşey ifade etmedi. Biraz denedim ama baktımki diğerine göre çok az farklar var ve en azından şimdilik kullanmamı gerektirecek bir şey yok. O nedenle kullanmıorum. Ama kullanabilirim. Değişken kullanımı ve Config seçimleri çok gelişmiş. Alternatifli işlemci kullanımına yönelik komutlar ilave edilmiş. Mesela 16F877 kullanırsan şunu yap 16F877A kullanırsan şunu yap gibi. Ama çoközel şeyler bunlar sonuçta ne kullanacağını sen biliyorsun ve bu gibi şeylerin çözümü manuel olarak her zaman mevcut.

Diyeceklerim bunlardan ibaret.

Ete

Reytabu

Hocam

MCS de sizin şu örneği derleyemiyorum

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
TRISA=0
TRISB=0
LOW PORTB.2
PAUSE 200
LCDOUT $FE,1
LCDOUT "BASIC DERSLERI"
LCDOUT $FE,$C0,"DERS No: 3"
End

Hata olara " warning line 27 bad token, bad expression gibi hatalafr veriyor.

Yardım lütfen

ete

Derlemeye çalıştığın program bundan ibaret değil anlaşılan. Zira 27 nolu satırda bir ifadeyi derleyici  beğenmemiş. Muhtemelen yazım hatası var orada ama sen yalnızca bize 17 satır program vermişsin. Sorun gerisinde .......

Ete

Reytabu

Program o kadardı. Komutları kopyala yapıştır ile mcs ye aktramıştım. Kopyala yaapıştır esnasında boş satır falan mcs ye ilave edilmiş olabilir mi acaba?
27. satı olarak satır ilave ederek ve silerek hatalı satırı bulmaya çalışayım o zaman.

Benim makina 64 bit idi bundan kaynaklanan bir ayar sorunu falan olabilir mi acaba diye düşünmüştüm.

Saygılarımla

ete

Peki o zaman sende 27. satır olarak hangisi gözüküyor. Belkide başlık vardı onu sildin. Başlıklarıda satır olarak sayıyor program çünki.

Ete

Reytabu

Hocam teşekkür ederim. Hatayı buldum, programı sizin dersten kopyalayıp yapıştırmıştım.

LCDOUT " BASIC DERSLERI"
LCDOUT $FE,$C0," DERS No: 3"

Komut satırlarındaki 1. tırnak işaretleri ters yöneymiş. Ters tırnakları silip tekrar yazınca düzeldi.

huseyin

hocam gecen sefer sigorta ayarlarini yapmiştim gayat güzel derleme yapiyordum sonra hiç bir degişiklik yapmadim kendi kendine overwriting hatasi veriyor
ilk olarak C/pbp içindeki inç dosyasinda ki
__config......   satirinini başina ';' işareti koyup kaydettim kapattim sonra sigorta ayarlarimi mpasm deki inç dosyasina göre yaptim
nerde hata yaptim yine hocam yardimci olabilirmisiniz

huseyin

hocam sizin konuda anlattiginiz gibi daha önce pbp yükleyip sorunsuz bir şekilde kullanmiştin fakat harddisc bozuldu ve bütün bilgilerimi kaybettim
programlari yeni yükledim ama mcs derlemeyi yapiyor hex kodunu çikartmiyor sebebi ne olabilir 
çikarttigi dosyalar bu şekilde

ete

Yüklediğin MCS nin versiyonu 4.0.0.0 mıdır. Önce ondan bir emin ol. Değilse BAsic'e nasıl başlanır açıklamalarında veridğim linkten tıklayarak yükle ve kur sonra yeniden dene.

Ayrıca PBP derleyicisinin C ana klasöründe kurulu olduğundan emin ol.

Başkada yapılacak bir şey yok zaten.

Ete

Mucit23

Hocam epeyce uzak kalmışım.
En sonki versiyonlarda ne gibi yenilikler var. Ben hala MCS olarak 3.0.0.5 ve PBP olarakda 2.60A kullanıyorum. Sİz hangisini kullanıyorsunuz.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Sadece MCS nin 4.0.0.0 versiyonunu kullanıyorum. Fark yok gibi gözüküyor. Ne farkı var onuda bilmiyorum doğrusu.
PBP 2.xx versiyonları için en son sürüm bu. Aslında 5.0.0 da yayınlandı ama PBP 3.01 için kullanılıyor eski sürümler için kullanılmıyor.

Ete

Reytabu

Sayın Ete

64 bit win7 home basic yüklü laptobumu değiştirip, yine 64 bit win 7 home promium yüklü yeni bir laptop aldım. Aynı MCS ve PBP yi yüklememe rağmen MCS yi bir türlü kullanamıyorum. Ayarlarını da düzgün yapıyorum bir defa çalıştıktan sonra bir daha açılmıyor.  program açmıyor. hata mesajı:exeption EInvalidPointer in module codestudio.exe at 000BF5AA. invALİD POİNTER OPERATİON. Yapabileceğimiz bir şey varmı?

Saygılar

Powered by EzPortal