Daha önce assembly de yazılmış bir programı düzenlemem gerekiyor. Bu iş için Bilgisayarıma MPLABX'in güncel sürümünü(v3.20) indirip kurdum. Eski bilgilerimle derlenebilen bir program yazayım dedim. 16F877 için basitçe bir program parçası hazırladım. fakat derlerken birçok hata alıyorum.
(http://s29.postimg.cc/6ipxu9o3r/Ekran_Al_nt_s.jpg)
16f877a nın .inc dosyasını HeaderFiles altına ekledim. Assembly kodumuna Source Files altına ekledim. Mplab 8.85'de böyle yapıyordum.
Mplabx'de neyi eksik yapıyorum?
source file dan bir main.c dosyası açın daha sonra c dili içinde assembly çağırın. ben assembly yazacağım zaman böyle yapıyorum. c içinde şu şekilde kullanabilirsin
#asm
_asm
// asm kodları
_endasm
#endasm
şeklinde yazınca pic in header dosyasını eklemeden de kabul ediyor.
Hocam onu diğer C derleyicilerinde de yapabilirim. Zaten MPLABX veya XC8 pek kullanmıyorum. Sadece bu iş için yükledim. Ama madem yükledim sorunun sebebinide öğrenmeyi isterim.
MPLABX kullanan arkadaşlardan ricam, MPLABX ile resimdeki gibi herhangi bir pic için assemby de derlenebilen bir proje nasıl olur? Anlatırlarsa sevinirim.
Ben de yeni sayılırım bu konuda. Biraz dökümanları karıştırdım bu haliyle derleniyor.
Proje ağacında "Header" kısmına, C:\Program Files (x86)\Microchip\MPLABX\v3.15\mpasmx dosya yolundaki p16f877a.inc'i eklememiz gerekiyor.
Bir de senin kodlardaki _CF_OFF konfigürasyon biti, kod koruma için mi. INC dosyasında böyle bir tanımlama göremediğim için yazım hatası olabilir diyerekten _CP_OFF ile değiştirdim Kodlarla çok boğuşunca okuduğumu bazen göremeyebiliyorum :)
Uyarılar çıkıyor 3-4 adet ancak onları tam anlayamadığım için olduğu gibi kaldı.
Referans aldığım döküman;
http://ww1.microchip.com/downloads/en/DeviceDoc/31027a.pdf
LIST P=16F877A
#include p16f877a.inc
__config _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF
ORG 0x00
BASLA
GOTO BASLA
END
Sanırım ORG 0x00 komutunu eklemek gerekiyor. Bu olmasa hata veriyor.