Pic asm sorun

Başlatan Dagci-85, 31 Temmuz 2006, 20:00:34

Dagci-85

Selam

Arkadaşlar resimde işaretlediğim nop komutların birisini sildiğimde sorun yok. Ama o bir nopu yazdığımda programım sapıtıyor. Bu sorun nelerden kaynaklanabilir?

http://img315.imageshack.us/img315/3831/asmso0.jpg

CoşkuN

Bir ihtimal Watchdog timer'dan kaynaklanıyor olabilir? WDT aktif mi? Pasif yaparak dene bir de.

Dagci-85

Hocam WDT off konumunda :(

o nop ların yerine başka komutlar yazıyorum, noplarla aynı satır saysına ulaşınca durum yine aynı.

z

LST dosyasin da yollarsan sorun tam anlasilir.

Goto' nun 1 nop ilavesi ile hangi adrese otelendigini gormemiz gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Dagci-85


z

Uzun suredir PIC ile ilgilenmiyorum. Yanlisim olabilir.

Asagidaki kod satirlarindan suphelendim.


00F8   0782           00411                         ADDWF           PCL,F
00F9   3445           00412                         RETLW           'E'
00FA   3445           00413                         RETLW           'E'
00FB   3459           00414                         RETLW           'Y'
00FC   3449           00415                         RETLW           'I'
00FD   344B           00416                         RETLW           'K'
00FE   3452           00417                         RETLW           'R'
00FF   3455           00418                         RETLW           'U'
0100   3454           00419                         RETLW           'T'

1 Nop kaldirdiginda 100 adresindeki retlw 0ff'e kayiyor.

F8 adresindeki ADDWW islemi sonucunda PC iceriginin H byte'i etkilenmez

T harfi icin PCL H degeri degismediginden program reset vektorune ucuyor.

Tabloyu daha yukarilara tasi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Dagci-85

Hocam dediğin gibi tabloyu yukarılara taşıdım sorun çözüldü. Çok teşekkürler.  :) Yanlız ben bu sorunun tam olarak neden kaynaklandığını hala anlamış değilim. Pic programlada henüz yeni sayılırım 2-3 ay oldu başlayalı. Nedendir hocam niye böyle bişey oldu?

z

Program Counter dedigimiz sayac 8 bitten daha buyuktur.

PC 'yi H ve L gibi dusunursek

mesela H=0 icin L=FF icin PC 0FFH adresini gosteriyor demektir.

W=1 icin  addwf PCL,F gibi bir islem yaptiginda

FF+1=00 olur. Halbuki, eldemiz var fakat bu islemde yok olur.

Normalde 100 olmasi gereken sonuc 00 olunca

Sen 100H adresine ucmak isterken 00 adresine ucmus oluyorsun.

Tablo sansina FF den 0 a gecis bolgesine denk gelmis.

Halbuki PIC'i tasarlayanlar addwf PCL,F isleminde cary varsa PCLH i da bir artirsalardi hic sorun cikmayacakti.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Dagci-85

Anladım hocam. Çok sağolun.