Pic basic Pro 2.50A "argument out of range" ne dem

Başlatan outlaw57, 20 Aralık 2008, 13:32:03

outlaw57

arkadaslar,

pic basic pro 2.50A kullanıyorum editor programim da microcode studio plus

ancak yazdıgım programda:

warning[220] c:\.....\ : address exceeds maximum range for this processor.
....
....
....
....
Error[126] c:\.....\ : argument out of range (1036 not between 0 and 1023)




kodların bir kısmını silince düzeliyor.

.hex uzantılı dosyamın boyutu(hata veriyor iken) 6 kb
kullanacagım pic 16f84A
bu pic 8 kb değil mi?
bu arada bunları isis 7.2 programinda simule ediyorum.

bu hatalar ve onlrın gidertilmesi hakkında yardımlarınızı bekliyorum.

simdiden teşekkürler.
: )

Tagli

Boyut karşılaştırması konusunda hex dosyası tam fikir veremez. 16F84A'nın program hafızası 1024 word'dür (burda "word" terimi standart 16 bit değil 14 bittir, çünkü bu PIC'in komutları 14 bitlik komutlardır.). Bazıları bu word'leri 2 byte gibi düşünüp hafızanın 2 KB olduğunu söylerler. Bazen de ( bit sayısı / 8 ) ile 1792 byte olduğu söylenir ama bu şekilde ifade etmek pek anlamlı değil bence. 1024 word demek program ASM kodu en fazla 1024 komut içerebilir anlamına gelir. MCS'da derleme yaptığında aşağıda bir yerde programın kaç word olduğu yazar.

Error[126] bununla ilgili gözükmüyor. Sanki bir WORD değişkenine 1023'ten büyük değer atılmış gibi duruyor.
Gökçe Tağlıoğlu

outlaw57

teşekkürler Tagli,

peki bu sorunu çözmek icin başka bir pic mi kullanmalıyım,

çünkü dedigin gibi baktım mcs de sol altta "success:1024 words used" yazıyor.

yazmam gereken az bi parça kod kaldı da : p  onları da eklemek zorundayım.
: )

Tagli

Öncelikle yazdığın kodu optimize etmeyi deneyebilirsin ama biraz ASM bilgin olması gerekli. Mesela özellikle LCD ile ilgili komutlar çok yer kaplar. If'lerin içine yazdığın şartlar, karşılaştırmalar falan da önemli, aynı sonucu veren farklı ifadeler olabilir ve bunların kapladıkları yerler çok farklı olabilir. Bunu kısaca anlatabilmek pek mümkün değil.

Muhtemelen PIC'i değiştirmek daha kolay olacaktır. 16F628A kullanabilirsin. Program hafızası 16F84'ün 2 katıdır. Bacak bağlantıları da aynıdır. Ama çalışması için fazladan birkaç ayara ihtiyaç duyabilir, mesela başlangıçta açık olan analog comparator modülünün kapatılması gibi.
Gökçe Tağlıoğlu

outlaw57

evet haklsın piclerle daha yeni tanısmaya basladıgım için olsa gerek : )
pic i degistirmeden önce bir miktar daha üzerinde çalısıp dediğin gibi kodları optimize etmeyi deneyecegim.

verdigin bilgiler için teşekkur ederim Tagli.
: )

outlaw57

Tagli,

Kodları optimize etmeyi basardim, ufkumu actigin icin teşekkür ederim.

surekli kullandigim komutları gosub altina topladim. 1024 words oldu 888 words : )
: )