Orijinalini görmek için tıklayınız : PİC BASİC
arkadaslar hepinize merhaba.ben ete hocanın notlarıyla pic basic öğreniyorum.led yakma ,role cekme.....vb.seyleri yazabiliyorum.ama defter uzerinde.bana derleyici program lazım.
yazdıgım programı hex e çeviricek.tavsiyelerinizi bekliyorum.birde verdiğiniz program hakkında bıraz açıklama yaparsanız bende nasıl kullanıcağım hakkında bılgı edınmıs olurum.
(birde yazdığım programın çalışıp çalısmadıgını nasıl anlarım.yazdığım programı pıc e atmadan test edebileceğim bi program varmı acaba?)yardımlarınızı bekliyorum
:saygılar:
aykut54
17 Ekim 2009, 19:34
forumda PIC SIMULATOR IDE programı var 10F,12F,16F,18F serisininde kod yazacabileceğin ve aynı zamanda pic'e kod atmadan kodları çalıştıracağın led,display,LCD,glcd,tuştakımı simülatör avantajları mevcuttur.
kolay gelsin
saollun peki yazdıgım kodu hex e cevırırmı mı bu program
----------
Link silinmiş galıba rapid hata veriyor
PBP da çalışmak için iki şeye ihtiyacın var.
Birincisi bir editör programı olan Micro Code Studio programı (MCS). Bu free yani bedelsiz bir program olup aşağıdaki linkten indirilebilir.
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
sayfanın altına doğru gördüğün bayrakların birinin en sağında bulunan linki tıkla ve programı indirip bilgisayarına kur.
SOnra yazdığın programları derleyip Hex'e çevirmek için derleyici gerekir. Onuda aşağıdaki linkten yükleyeceğin programların içinden Pic Basic Pro 246 yı makinanın C ana klasörüne kur. (bazı derleyiciler kurulumsuz direk dosyaların bir yere kopyalanması şeklinde kuruluyor. Bu dosyayı bilmiyorum. Önemli olan C ana klasöründe yer alması)
Daha sonra MCS yi çalıştır ve üstte view menüsünde Compile and Program options seçeneğini seç ve ekrana gelen seçeneklerden ister find manually (manuel olarak bul) yada Find Automatically seçeneklerini seçerek C ana klasörüne yüklemiş olduğu PBP246 nın yerini göster.
Bu aşamadan sonra programlarını MCS üzerinde yazabilir ve sonunda da Compile butonuna basarak derlemeyi yapabilirsin.
Tabiiki programı hangi pic için yazıyor isen onu yukarıda açılan küçük pencerenin kenarına tıklayarak açıp ilgili pici de seçmen gerekiyor.
Her şey yolunda giderse an allta sol köşede Success xxxx byte gibi bir mesaj göreceksin. Bu mesaj derlemenin başarı ile yapılıp dosyanın hex'e çevrildiğini göstermektedir.
Hex dosyası BAS dosyası ile aynı isimle aynı klasör içinde kayıt edilir.
Sİmulasyon işine gelince yani yazdığın programların çalışıp çalışmadığını görebilmen için makinana Proteus programını yüklemeni öneririm. Bu programda her türlü devreyi ekranda kurup gerekirse pic de kullanarak çalıştırabilir veya varsa hataları görebilirsin.
Protesu konusunu biraz araştır neler yapılıyor ona bak. Benim derslerin çoğu bu program üzerinden anlatılmıştır.
Forumda portable Proteus 7.6 Sp0 var. Onu kullanabilirsin.
Kolay Gelsin
ETE
SAOLUN HOCAM PROTEUS bilgisayarımda yukle.peki isis te similasyon yaparken hex dosyasını isise nasıl yuklıycez.tesekkurler..
----------
hocam kusura bakmayın ılk MCS programını indiremedim.eger bilgisayarınızda var ıse onuda herhangı bır dowland sitesine koyarmısınız.çok makbule gecer.
Isis'te koyduğun PİC'İN üzerine sağ tıklayıp edit properties bölümüne gir. orada program file diye bir kısım var oradan yükleyebiliyorsun.
Hasan,
Araştırmayı sevmediğin belli oluyor. Arayan bulur derler ya aramayan da bulamaz demek lazım.
Bu forumu bile arasan bir yükleme yeri bulman mümkün.
Bak aşağıda verilmiş mesela
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
Aynı linki bir kez daha vereyim.
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
Protesus (isis) da ekrana işlemciyi koyduktan sonra üzerine sağ tıkla ve açılan pencerede program file karışındaki kutucuğun yanındaki klasör işaretine tıklayıp hex dosyasının yerini göstermen hex dosyasını yüklemek için yeterli olmaktadır.
Açılan pencerede işlemciye ait çalışma frekansınıda uygun frekansa getirmen gerekir. Uygun frekans programda ne belirtilmiş ise odur. Yada açlışmayı düşündüğün kristal frekansıdır. Genelde 4 MHz olmaktadır.
Ete
hocam yanlış anlasılmasın. sitede buldum.indirdim ve kurdum zaten ama orda bir tane pic secılebiliyor. oyuzden sısden rıcada bulundum hocam..hocam son olarak bu programda cevirme işini yapmak için hangi menuyu kullanıyoruz.butun butonları denedım ama nafıle.saygılarımla...
----------
hocam lesson 1 dosyası parola korumalı
Hasan,
Birprogramı derleyebilemen için bir kaç şeyin bşr arada olması gerekiyor.
1. cisi makinanda MCS kurulu olacak.
2. cisi makinanda PBP246 veya 250 kurulu olacak.
3. MCS ye yukarıdaki ilk mesajda anlattığım şekilde PBP2xx nin yerini göstermen gerekiyor.
4. MCS ekranında Bir program yazılmış olması gerekiyor.
5. Bu programın bir isim altında bir yere kayıt edilmiş olması gerekiyor.
6. Program hangi pic için yazılmış ise o picin MCS ekranı üst tarafta bulunan kutucuk içinde seçilmiş olması gerekiyor.
Bütün bu şartlar yerine gelmiş ise en sonunda MCS ekranı sol tarafta bulunan Compile (üzerinde sarı çarpı işareti var) butonuna basılınca program derlenir ve hex dosyası yazılı programın kayıtlı olduğu yerde kayıt edilir.
Hepsi bu kadar.
Lesson1 dediğinde nedirki? Benim derleri kast ediyorsan ben Lesson ismini kullanmam bu bir ikincisi benim dosyalarda parola kullanmadım ortada bir yanlışlık olmalı.
Ete
Ete hocam teşekkürler dersler için bu arada lesson felan diye bişey yok parolada yok kardeş bilgin olsun(anos)
Mucit23
03 Kasım 2009, 14:19
arkadaşlar micro code studio da PİC16F84A ile basit bi yürüyen ışık devresi yaptım yalnız picin tüm pinlerini çıkış olarak ayarladım RA4 pinini 10K direnç ile PUL-UP yaptım devre çalışıyor yani ledler yürümeye başlıyor ama RA4 pinine gelince o yanmıyor onu atlıyor bunun sebebi nediryazdığım hex dosyası ve şemayı veriyorum yardımlarınızı bekliyorum arkadaşlar daha bu işlerde çok acemiyim ete hocanın dersleri sayesinde bişeyler öğrenmeye çalışıyoruz
Genelde piclerde PortA.4 pini Open Collector dur. Yani sen bu pini high yapsanda high olamaz. Olması için dışarıdan uygun bir pull up direnci bağlaman gerekir.
Bu nedenle ya oraya bir transistör bağlayacaksın yada pullup direncini 470 Ohm olarak ayarlayacaksın.
Ete
Mucit23
03 Kasım 2009, 15:17
ete kardeş çok saol 470 ohm direnç işe yaradı
----------
ha bide ete kardeş yukarıdaki devreye pwm eklemek için nasıl bi kod gerekir ya mesela ledlerin parlaklığının artıp azalması için
Her bir led in parlaklığını ayarlamak için ayrı bir PWM sinyali gerekir ve bunu kullandığın pic yapamaz. Aslında yapabilecek bir pic de tanımıyorum henüz.
Ancak bütün ledlerin parlaklığını aynı anda değiştirmek istersen bir başka pic mesela 16F628 kullanarak onun donanım PWM sinyalini kullanıp bu iş yapılabilir.
Hatta dahada ileri giderek bir 16F876 kullanıp Analog girişine birde pot bağlayarak pot a bağlı olarak pwm sinyalinin duty değerini değiştirmek ve bu değişen sinyal ilede ledlerin bir mosfet transistör aracılığı ile sürülmesini sağlamak mümkündür. Bu işlemde PWM sinyali bir mosfeti sürecek mosfet de ledlerin ortak katodunu sürecektir.
Bu işin kodlarını da soracak olursan epeyce zaman alacak bir iş. Öyle kısa bir kod yok senin anlayacağın. Burada anlatamayacağım şimdi. Ama benim derslerde benzer şeyler var yanılmıyorsam ders-11 de olabilir. Oraya bakın.
Ete
ozanorkun
20 Aralık 2009, 00:42
merhaba arkadaşlar Micro Code Studio programı (MCS) yi kurduktan sonra Compile and Program options seçeneğini seçiyorum Find Automatically i seçtikten sonra dosyalar yüklüyo bir yerde takılıyo ve aşağıdaki hatayı veriyo yoksay diyince kuruyo ama bu sefer yazdığım kodları derleme yapmıyor program yardım edebilecek varmı
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız] ([Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız])
İlk defa gördüğüm bir hata şekli daha çok windowsunla alakalı bir şey galiba.
Bir iki öneride bulunayım,
Önce windows un normaş çalıştığından emin isen geldiğin bulma ekranında manuel bulmayı seçip kendin yol gösterebilirsin.
PBP yu C ana klasörüne kurmayı unutmayın. Rahat edersiniz.
Bu şekilde olmuyor ise MCS yi tamamen bilgisayarından silip çıkarmanu hatta gerekirse registry kayıtlarınıda temizlemeni öneririm. Daha sonra aşağıdaki linkten yenisini yükle;
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
ekranın altına doğru ingiliz bayrağı yanındaki United Kingdom ibaresine tıkla .
Daha sonra yeniden aynı işlemleri yapmaya çalış.
Bu şekide de olmuyor ise, varsa elinde windows CD si onarma yapmayı denemen ve onarılacak dosya olarak da "Config.nt" dosyasını bir şekilde bulup seçmen gerek.
Yada aynı dosyayı bir başka çalışan bilgisayardan kopyalayıp seninki ile değiştirmen de işi çözbilir. Ancak windows çalışırken sistem bunu sana yaptırmayabilir. Dos ta açıp bir şekilde yapman gerek.
Hiç birisi de olmaz ise windowsunu yenilemende fayda var.
Ete
H@S@N
20 Aralık 2009, 14:44
arkadasım bıde mcs sağ tıkla özelliklerden uyumluluktan işletim sistemini seç ole den belkı olur.
ozanorkun
21 Aralık 2009, 23:51
ETE hocam baktım başa çıkılmıyo format attım :) bu seferde programların ikisinide kurdum verdiğiniz link ingilizceydi benimde pek aram yok ingilizceyle ancak pbpnin demo versiyonunu buldum.Bu seferde derlerken uyarı veriyor.Dosyalar eğer kendi bilgisayarınızda varsa onları yükleebilirmisiniz.
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız] ([Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız])
ozanorkun
25 Aralık 2009, 21:29
arkadaşlar cevap verecek yokmu
KAZIMUGUR
26 Aralık 2009, 12:20
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
ozanorkun
26 Aralık 2009, 21:45
çok teşekkürler KAZIMUGUR sonunda program çalışıp derleme yapıyor ancak benim sorularım bitmedi :D yine başınızı ağrıtıcam
şimdi ben ETE hocanın derslerinden pbp öğreniyorum daha demin başladım ve şöyle bir kod yazdım ancak ikisininde en sonda aynı anda yanıp aynı anda sönmesini istiyorum son kısmı beceremedim :S yardım edebilirmisiniz.(yani ilk önce led1 sonra led2 sonra iki led aynı anda sonrada tekrar başa)
TRISA=0
TRISB=0
PORTA=0
PORTB=0
LEDYAK:
HIGH PORTA.1
PAUSE 50
LOW PORTA.1
PAUSE 25
HIGH PORTA.2
PAUSE 50
LOW PORTA.2
PAUSE 25
KAZIMUGUR
26 Aralık 2009, 22:18
Beni yakından tanıyanlar deli kazım derler :saygılar: , deliyim ama ahmak değilim.
@ETE hocamın olduğu yerde bir şey yazıpda ondan öğreneceklerimizin önünü kesermiyim ? (yasli)
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
Allah CC razı olsun .
H@S@N
27 Aralık 2009, 00:53
KAZIM KARDES BENCE BOYLESI ETE HOCAYI DAHA SEVINDIRIR.
kodlara gelirsek programın sonune sole yazman yeterlidir.
senin programın davamı kopyala senınkının altına yapıştır.
HIGH PORTA.1
HIGH PORTA.2
PAUSE 50
LOW PORTA.1
LOW PORTA.2
PAUSE 25
GOTO LEDYAK
END
aykut54
27 Aralık 2009, 02:41
Beni yakından tanıyanlar deli kazım derler :saygılar: , deliyim ama ahmak değilim.
@ETE hocamın olduğu yerde bir şey yazıpda ondan öğreneceklerimizin önünü kesermiyim ? (yasli)
[Link Görmek ve Forumumuzdan Yararlanmak İçin Üye Olmasınız]
Allah CC razı olsun .
kazım abi sende ete abide bir tanesi allah sendende razı olsun hakkın ödenmez
Porta.0=1 gibi komutlar bit bazında komutlardır. Tek bite hükmeder.
Bir led'i aynı anda yakmak isterseniz byte bazında komut vermeniz gerekir. PortA da çalıştığımıza göre ve Ledler PortA.0 ve PortA.1 de bağlı olduğuna göre önce PortA nın 0 ve 1 nolu bitlerinin dışındaki bitlerinin durumunu değiştirmememiz gerekiyor. Bu nedenle;
Önce PortA=PORTA & %11111100 şeklinde porta nın diğer bitlerinin kopyasını alırız.
Sonra PortA=PORTA+%00000011 şeklinde bir komut vermek yada PortA=(PORTA&%11111100) OR %00000011 şeklinde bir komut verirsek ilk iki biti HIGH yapmış oluruz.
Söndürmek için ise PORTA=(PORTA & %11111100) komutunu vermek yeterli olacaktır.
Böylece yalnızca 0 ve 1 nolu bitleri değiştirmiş diğerlerini olduğu gibi bırakmış oluruz.
Her kese kolay gelsin
Ete
ozanorkun
28 Aralık 2009, 18:11
merhaba ETE hocam 12f629 için program yazarken yazılımda ne gibi değişiklikler yapmak lazım
Ozan, sorunu biraz daha dikkatli sorarmısın. Anlayamadım. Ne demek değişiklikler
Yoksa 8 pin piclerde port - giriş çıkış ve sigorta ayarlarınımı soruyorsun?
Değişiklik deyince bir şeye kıyasla değişiklik karşılaştırması yapılır benim bildiğim.
Ete
ozanorkun
28 Aralık 2009, 20:08
Hocam değişiklik derken mesela port isimleri 'GPIO.0' böyle yazıyormuşuz,TRIS yerine başka ifadeler kullanılıyormuş ve buna benzer şeyler.Birde bunların OSC değerleri içlerine gömülmüş oluyormuş o kodu saklayıp pici programlarkenmi kullanıyoruz
12F629 da analog giriş (ADC) yoktur. Ancak komparatör bulunmaktadır.
Komparatörü iptal edip dijitalk giriş çıkış yapmak için CMCON=7 komutunu kullanmalısın.
Port olarak tek port vardır onunda adı GPIO dur. Bu portun giriş çıkış ayarlama registeri,
TRISIO dur. AYnen TRISA veya TRISB gibi kullanılır. Tek olduğu için adı TRISIO olarak geçer.
Portun kullanımı GPIO.0 veya GPIO.1 şeklinde GPIO ve yanında pin bit numarası verilerek kullanılır.
Bu entegrede dahili osilatör fabrikada kalibre edilmiş olup en son hafızada kalibrasyon değeri kayıtlıdır. BU nednele bu tip entegrelerin rastgele silinmemeleri gerekir. Silinirken mutlaka dikkat edilmelidir.
Programlayıcılar genelde program hafızasının sonundaki kodu alıp yeniden programlarken tekrar yazarlar. BAsic de bunu yaptırabilmek için
DEFINE OSCCAL_1K 1
komutunu programın başına yazmak gerekir.
Bu komut olunca programlayıcı mevcut oscal değerini önce okur sonra programı pice yazar ve yazarken oscal değerini tekrar yerine koyar.
Bu değeri kaybederseniz ne olur? o zaman dahili OSC kullanamazsınız. Program osc kalibrasyon ayarı bulamayınca osc y kalibre edemez ve belkide dahili osilatör hiç çalışmayabilir. Ama kristalli kullanım her zaman mümkündür.
Ete
ozanorkun
28 Aralık 2009, 22:09
teşekkürler hocam kısa bir program yazdım örnek olarak ama çalıştıramadım :S
CMCON=7
TRISIO=0
GPIO=0
LEDYAK:
HIGH GPIO.0
PAUSE 50
LOW GPIO.0
PAUSE 50
HIGH GPIO.1
PAUSE 50
LOW GPIO.1
PAUSE 50
GOTO LEDYAK
END
Peki neden çalışmadığı konsunda bir yorumun varmıdır.
Soru sordun izahat verdim. Ama dediklerimin bir kısmını yapmışsın bir kısmını es geçmişsin.
Simulasyon denilince sanki havagazından bir iş deyip nasıl yazarsan yaz nasıl bağlarsan bağla çalışır diye düşünüyor herkes.
Gerçek devreni nasıl yapacaksan simulasyon devresi ve programıda aynı şekilde titizlikle kaidelere uygun olarak yapılmalı ve yazılmalıdır.
Çalışacağına bahse gireceğim program aşağıdadır.
Bak bakalım eksiklerin nelerdir.?
Bu arada MCLR pini yalnızca giriş olabiliyor. Çıkış olarak kullanılamaz.
Ete
@ DEVICE PIC12F629 'işlemci 16F628
@ DEVICE PIC12F629, WDT_ON 'Watch Dog timer açık
@ DEVICE PIC12F629, PWRT_ON 'Power on timer açık
@ DEVICE PIC12F629, PROTECT_OFF 'Kod Protek kapalı
@ DEVICE PIC12F629, MCLR_off 'MCLR pini kullanılMIYOR.
@ DEVICE PIC12F629, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
DEFINE OSCCAL_1K 1 'bu komut mutlaka olacak OSCCAL değerini yeniden pice yazdırıyor
DEFINE OSC 4
CMCON=7
TRISIO=0
GPIO=0
LEDYAK:
HIGH GPIO.0
PAUSE 50
LOW GPIO.0
PAUSE 50
HIGH GPIO.1
PAUSE 50
LOW GPIO.1
PAUSE 50
GOTO LEDYAK
END
ozanorkun
28 Aralık 2009, 23:02
haklısınız hocam kusura bakmayın.Çok teşekkürler
kemalersin
24 Ocak 2010, 19:00
merhaba arkadaşlar, benim microcode studio ve/veya pic basic pro ile ilgili bir problemim var.
pic programlamaya ETE hocamızın dersleri sayesinde yeni başladım. Bu arada elinden geldiğince herkesin yardımına koştuğundan dolayı kendisine teşekkürü borç bilirim.Sıkıntım şu; bu sayfadan indirdiğim MSC ve PBP' yi tariflerdeki gibi kurup çalıştırdım. 16F84A için basit bir yürüyen ışık programı derleyip .hex uzantısına dönüştürdüm. Hatta ISIS' da denememi yaptım çalıştı. Sonradan programda ufak geliştirmeler yapıp eski .hex dosyasını ve bileşenlerini silerek yeni hazırladığım programı .hex dosyasına dönüştürmek istediğimde klasöre "run" adında iki dosya oluştu, birisi kısayol MSDOS simgesinde. Program kilitleniyormuş gibi davranıyor, bir süre (yaklaşı 1 dk) bekleyince altta şöyle bir hata yazısı çıkıyor "Fatal: out of memory (pbpw.exe)". MCS nin ayarlarını kontrol ettim. Forumda ilgili bir konu var mı diye araştırdım, bir sonuç elde edemedim. MCS ve PBP yi denetim masasından kaldırıp tekrar kurdum, MCS yi açtığımda son yazdığım program geldi ekrana ve dönüştürmede aynı sıkıntı devam ediyor. Bana yardımcı olursanız çok sevinirim.
Herkese kolay gelsin.
Kemal.
------------------
Belki gerekli olur diye yazdığım programın son halini de vermek istedim. Program 16F84A için yazıldı ve MCS de açılır pencereden 16F84A seçiyorum. Program şu şekilde;
TRISB=0
PortB=0
BASLA:
HIGH PORTB.0
PAUSE 20
HIGH PORTB.1
PAUSE 40
HIGH PORTB.2
PAUSE 60
HIGH PORTB.3
PAUSE 80
LOW PORTB.3
PAUSE 80
LOW PORTB.2
PAUSE 60
LOW PORTB.1
PAUSE 40
LOW PORTB.0
PAUSE 200
GOTO BASLA
END
MCS program Files içinde kurulmalı. PBP derleyicisi ise C ana klasöründe kurulmalıdır.
MCS ye PBP derleiyisinin yeri gösterildikten sonra normal derleme butonuna basılarak derleme yapılmalıdır.
Run isimli dosya oluşmasını ilk defa duyuyorum.
YUkarıda dediğim şekilde kur programları. Bas dosyasını yükle ve yuarıdaki kutucukta 16F84A ismi yer alsın. Sonra derle butonuna bas ver programı derle.
Başka söylecenecek bir şey yok.
Ete
kemalersin
24 Ocak 2010, 20:03
ETE hocam öncelikle cevabınız için teşekkürler.
Programları üç kez kaldırıp tekrar bahsettiğiniz gibi kurup denememe rağmen malesef sorun devam ediyor. Bir kere de oluşan RUN dosyasını çalıştırdım, üç adet dosya oluştu bunlardan birisi .asm dosyasıydı. Tabi pic e .asm yükleyemiyorum. .hex dosyası gerekiyor o da bir türlü oluşmuyor.
Forumun bir yerinde bir arkadaşa windows onarımı ile ilgili ve de .dll uzantılı bir dosyadan bahsetmiştiniz. Acaba bende ki sorun da bununla ilgili olabilir mi? Bahsettiğiniz .dll uzantılı dosyanın adı neydi hocam?
Kolay gelsin.
Kemal.
-----------------------
Hocam tamam sorunu hallettim.
Aslına bakarsanız sorunu tam olarak çözemedim ama uygulamamı en baştan aldım hatta isis çizimini bile en baştan tekrar yaptım. MCS de programı yeni bir sayfa açıp tekrar yazdım. Tüm çalışmaları farklı bir isimle farklı bir klasöre kaydettim ve .hex dönüşümü başarılı bir şekilde gerçekleşti.
Sanırım bir program üzerinde değişiklik yaparsak en iyisi onu farklı bir isimle farklı bir klasöre kaydetmek. Yoksa program .hex derlemesini yaparken bir yerlerde sorun yaşıyor.
Herkese iyi çalışmalar.
vBulletin Versiyonu Gizlenmiştir, Copyright ©2000-2012, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0