simulator tavsiye

Başlatan kotan04, 24 Mart 2011, 10:30:57

kotan04

Merhaba arkadaşlar MicroCode Studio Plus programında bu şekilde: simulasyonu nasıl çalıştırmam mümkün olabilir veya buna benzer bir programla nasıl yapabilirim??
kkkkoootttaaannn000444

Nedenler

Yanlışım olabilir fakat şöyle birşey hatırlıyorum bir deneyiniz;
Programı pbp değilde bas olarak kaydedin. Kaydettiğiniz bas dosyasını proteusda picin içine atın ve çalıştırın. Herhangi bir pencere açılmazsa Debug menüsünün en altında ki açılır pencerelere bir bakın.

kotan04

merhaba bahsettiğin gibi yaptım malsef olmadı birazda kurcaladım malesef
kkkkoootttaaannn000444

Mucit23

Bu işlem sadece protonda oluyor. Yani protonun oluşturduğu bas dosyasıya oluyor. Diğer dilleri bilmiyorum

ete

#4
Bu özellik yalnızca Protonda olmuyor. Hatta protonda oluyormu bilmiyorum. Bildiğim Protonun özelliği Isis ile birlikte çalışabilmesi ve benzer şekilde programın hangi kısmının icra edildiğinin gözlemlenebilmesi.

Burada gösterilen ise MicroCodeStudio ve onun Plus modeline ait bir özellik. Ancak ICD (In Circuit Debugger) denilen bu özelliği kullanabilmek için bir ICD bir takım şeylere ihtiyaç var.
Birincisi MCS Plus (MCS kendi başına yalnızca 16F628 i simule edebiliyor) Hangi pic lerin bu şekilde çalıştırılabileceği aşağıdaki linkte belirtilmiş.

http://www.mecanique.co.uk/code-studio/icd/ICDModels.html

Bunun yanı sıra bir de PC ile devrenizin bağlanabilmesini sağlayan ara devreye ihtiyacınız bulunmaktadır. Buna ait açıklama ve devre şemasıda aşağıdaki linkte mevcut.

http://www.mecanique.co.uk/code-studio/icd/ICDHardwareSetup.html

Bütün bu zahmetin ardından yalnızca program nerede hangi komutu işliyor ve buna karşılık değişkenlerin aldıkları değerler nelerdir onları görebiliyorsunuz. Aslında genelde değişkenlerin nerede hangi değerleri aldıkları önem kazanıyor çoğu zaman. Yoksa program nereye gitmiş çok önemi yok. Tabiiki zaman zaman programın gereksiz dallandığı yerler bir takım olumsuz sonuçlar yaratmıyorsa.
Elinizde isis var ise değişkendeğerlerini daha güzel takip etmeniz mümkün. Bunun için her bir değişkenin yerleştirileceği adresi ya bilmeniz yada adresi sizin belirlemeniz gerekir. Ben genellikle kendim belirleyerek bu işi yapıyorum. Aşağıda adım adım anlatacağım.
1. Programın değişkenler kısmında mümkünse byte değişkenlerini önce ve ardından da word değişkenlerini sıralayın.
2. Byte değişkenlerinin yanına 56 nolu adresten başlayara 56-57-58- şeklinde her bir byte için bir sonraki numara olacak şekilde adres verin. Örnek  ;
TEMP   var byte 68
SAYI   VAR BYTE 69
SAYAC  VAR byte 70
Bu örnekte TEMP değişkeni 68 nolu adrese, SAYI 69 nolu adrese yerleştiriliyor yada o adresleri kullanıyorlar.
Dikkate edilmesi gereken tek şey word değişkenleri için iki adres kullanmanız gerekiyor. örnek verelim;
RAKAM  VAR word 58
CIKAR  VAR WORD 60
FLASH  VAR WORD 62
Bu şekilde hazırlanmış programı derledikten sonra isisde devreyi çalıştırırken;
1. Önce bir pause tuşuna basın ve yukarıdan Debug seçeneğini seçin.
2. Alt kısımda "Watch Window" seçeneğini işaretleyin
3. Açılan pencere üzerine sağ tıklayın ve gelen pencerede "Add Items (by Address)" seçeneğini seçin
4. Açılan yeni pencerede Name kısmına kendi değişken adınızı yazın  Örnek SAYI= şeklinde bırakın.
5. Altındaki yer Address yeri olup burayada o değişken için belirlediğiniz adresi yazın.
6. Sonra alt kısma geçin ve orada Data Type kısmında  değişkeniniz byte cinsinden ise byte'ı word cinsinden ise Word seçeneğini seçin .
7. Display format kısmında ise değişkeni hangi format da izlemek istiyorsanız onu işaretleyin. Desimal format için Unsigned Integer seçeneğini  işaretleyip "Done" butonuna tıklayın.
8. Bütün değişkenlerinizi bu şekilde oraya ekleyebilirsiniz.
9. Daha sonra programı çalıştırın ve değişkenlerin değerlerini artık o pencerede izleyebilirsiniz.
Unutmayın programı çalıştırıp Pause tuşuna basmaz iseniz Debug menüsünde aşağıda hiç bir şey göremezsiniz.
Birde şunu belirtmekte yarar var. Bu menüde , işlemcilerin Eprom adreslerini, devrenizde var ise diğer epromların adreslerini, İşlemcilerin register adreslerini hepsini izlemeniz mümkündür.
Eprom ve bazı diğer registerler yalnızca pause butonuna basıldığında ekrana gelmektedir. Bu nedenle anlık olarak programı bu şekilde durdurup istediğiniz yere bakabilirsiniz.

KOlay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

Bunu hiç bilmiyordum.  :o
Ben sadece protonla olabildiğini biliyordum. Yanlış bilgilendirme için özür dilerim.
Bakalım başka daha neler öğreniceğiz.

Mucit23

Hocam yaptım oldu. Fakat bir kısmı anlayamadım. oluşturduğumuz değişkenin adresini girerken adress bölümüne tıkladığımızda sadece pic içerisindeki registerleri görebiliyorsun. Mesela ben portbyi seçtim. Debug yaptığımda protbnin değerinin adım adım görebiliyorum. Siz yukarıda galiba anlatmaya çalıştınız ama ben anlayamadım. Diyelim pic içerisindeki bir değişkenin içerisindeki değeri göreceğiz. Değişkenin adını yazdık. İçeriğini görmek istediğim değişkeni programda ilk sıraya yazmışım. Yani eğer adresller belirlenirken 0. byte başlanarak yazılıyorsa. program içerisindeki değişkenin adresi 0x00 gibi olması lazım öyle değilmi.  Adres değerinin dediğim gibi yazdığım zaman programda debug esnasında herhangi bir değer göremiyorum. Ben nerde hata yapıyorum.

Maxim

doğrusu şöyle :

iki tip canlı simule olayı var .

1- proteus altında satır satır kodları görerek .
protona özel, bu picbasicte yok.
https://www.picproje.org/index.php/topic,32123.0.html


2- bilgisayarımızın seri rs-232 çıkışı üzerinden derleyici içerisinden pice fiziksel olarak bağlanarak, kodları satır satır çalıştırmak.
Ete ustanın dediği bu, sanırım arkadaşın sorduğuda bu.
Bu özellik yıllardır protonda zaten var, in circuit debugger yani ICD , picbasic te de varmış.

ilk başlarda protonda ücretli olan bu özellik, programın kırılmasından sonra bedava hale getirildi
daha sonrada, üreticisi desteğini kaldırdı ama şu an yüklenip kullanılabilir genede.
Çok tutulan bir yapı değil açıkçası o yüzden rağbet görmüyor benim bildiğim .
https://www.picproje.org/index.php/topic,17380.0.html

ete

Mucit,
Değişken adresleri sıfırdan başlamıyor. Genelde 32 ($20) den başlıyor. Ancak derleyici kendi registerlerinide araya sıkıştırdığı ben genelde 56 yı başlangıç adresi olarak alıyorum.

Aslında değişkenlerin nereden başladığını görmenizde mümkün. Programı derledikten sonra aynı dizin içinde oluşturulan *.ASM dosyasını note pad ile açarsanız aşağıdaki görüntüyü görürsünüz;

RAM_START             EQU   00020h
RAM_END               EQU   0005Fh
RAM_BANKS             EQU   00001h
BANK0_START           EQU   00020h
BANK0_END             EQU   0005Fh
EEPROM_START          EQU   02100h
EEPROM_END            EQU   0217Fh
Bu bilgilerin altında da değişken isimleri ve karşılarında ise RAM START+020 gibi ifadeler görürsünüz. Bunlar değişkenlerin gerçek adresleridir. Ama dediğim yöntemle siz belirlerseniz sizin verdiğiniz adresleri görürsünüz orada.

Değişkenleri izleme metodunu açıkladım. Dikkatlice bir kez daha oku anlarsın.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mucit23

Hocam teşekkür ederim açıklama için. Şimdi anladım nasıl yapacağımı. Şuanda istediğim değişkenin değerini görebiliyorum. Maxim hocamın dediği gibi Debug esnasın protonda olduğu gibi hangi kodun işlendiğinide görebilseydik çok süper olurdu. Hata bulma zamanını minumuna düşürürdü herhalde. Yıllardır proteusun bu güzel özelliği bilmediğim için kendime kızıyorum açıkçası. Bakalım başka daha neler öğreneceğiz..

kotan04

sayın hocam ve arkadaşlar beni aydınlattığınız için çok teşekür ederim birde basic pro da böyle bir kullanım yapabilseydik çok tatlı olacaktı programcı arkadaşlar şu işe bir el atsa :)
kkkkoootttaaannn000444