Herkese kolay gele.
Proton kullanıyorum.Ve program içinde sabit bir yer varmı dataları yazıp derlenen hex dosyasının gerekli adresinde olsun ve programlıyacagım programda oradan okusun.
Bundan kastım ewrite komutu değil pic programlarken pic in eepromuna aktarılmasını istiyorum.
Anladığım kadarı ile Pic'in Data hafızasında belirli adresleri kendi işlerin için kullanmak istiyorsun. Buralara bilgi yazıp sonradan bunları eeproma aktarmak istiyorsun.
Bu iş için kullanabileceğin komut <POKE adres,Data> datayı okumak için ise Peek adres,data şekilinde. Peki direkt eeproma yazıp ordan kullanmayı neden istemiyorsun. Mutlaka bir sebebin vardır.
Pic Basic Pro da değişken tanımlayıp bunu istediğin bir adreste tutabiliyorsun. Proton'da bu iş yapılırmı bilmiyorum. Olsa idi bana göre tam istediğin seçenek olacak idi. Zira bir adresi kullandığın zaman pic'in aynı adresi data depolamak içinde kullanmaması gerekir. Bunun yolu programın başında bunu tanımlamak.
ETE
Aslında cevabını okuyunca, sormak istedigimle alakalı bir soru sormadıgımı fark ettim.Aslında yapmak istedigim seninde dedigin gibi pic eepromuna bunları direk yazmak.Ama Bu data ları programın neresine koyacagımı bulamadım.Yani programı hazırlarken data ve ewrite komutu ile bunları programla eeproma yazıp ordan da okuta biliyorum ama bu dataların eeproma yazılma işini programa yaptırmak istemiyorum.pic programlarken yazmak istiyorum.Umarım anlatabilmişimdir derdimi.
Bu gibi durumlarda ben genelde programın en başına yani normal program döngüsünün dışına bu komutu yazıyorum. DOlayısıyla pic'i çalıştırdığın zaman yalnızca bir kere bu komut çalıştırılıyor ve datalar eeproma yazılıyor. Tabiiki program içinde bu dataları değiştiriyor isen ve pic'i durdurup sonradan yeniden çalıştırıyor isen ve her çalıştırdığında yeniden bir önceki dataları kullanmak istiyor isen bunun çözümü yok veya şöyle bir çözüm var. Yalnızca bir kere bu dataları eWrite ile program başında ver ve pic'e kayıt et. Daha sonra programda tadilat yapıp ewrite bölümünü picden çıkart ve yalnızca programı pic'e kayıt et. Böylece pic'i durdurup yeniden çalıştırsan bile bir önceki dataların silinmemiş olacaktır.
Diğer bir yöntem de,
Pic'e programı kayıt ederken alt kısımda eeprom data değerleride görülüyor. Bu kısıma istediğin adrese datalarını HEX olarak kendin direkt yazabilirsin. Pic'i programladığın zaman bu datalar doğruca pic'in eepromuna yazılır.
Kolay Gelsin
ETE
Teşekkürler.
Sanırım başka caremiz yok gibi.
sanırım programlayabileceğin pic'in eepromuna dataları dışardan girmek istiyorsun. Umarım doğru anladım. Bunun en kolay yolu pic'i programlaraken kulandığın programlayıcının data eepromuna programlama esnasında istediğin data adresine bilgi grerek yapabilirsin.
Aslında dogru anlamışsın.Ama epic kullanıyorum ve onada dışarından şu dosyayıda datalara yaz diye bir bölüm bulamdım sadece 313 versiyonunda data nın silinmemesi için bir bolum var şu an onu kullanıyorum.
yuppi arkadaşım EEPROM komutu işini görebilir yanılmıyorsam
Yukarıdaki okuduklarıma bakılırsa program her açılışta eeproma bilgi yazacak ve çalışma sırasında da o bilgileri okuyacak.Bu ise eepromun belirli bir ömrü olan süreyi azaltacak.
Bunun yerine programa sadece eepromdan okuma komutu verilip yazma işlemi ise bir kereye mahsus programlama sırasında yapılmalı.Yani programlama sırasında picin eeprom bölgesine manuel olarak yazılmalı.Örneğin ICProg da programlanacak HEX açılır.Alt kısımda EEPROM bölgesi boştur.Eli le buraya ilgili adreslere Hexadecimal türünden sayılar girilir.Kolay gelsin.
@sezgin05
pbp de EEPROM komutuda o işi yapıyor.
Sayın arkadaşlar
PIC in EEPROM'una programla bilgi yazmak isterseniz.
pıc 16f877 EEPROM adres başlangıcı HEX 2100
bu şekilde MPLAB da yazarsanız sabit bilgiler bir sefere mahsus EEPROMA yazılmış olur.
LIST P=16F877
INCLUDE "P16F877.INC"
;***********************************************
__config(_CP_OFF & _PWRTE_OFF & _XT_OSC & _WDT_OFF & _BODEN_OFF & _LVP_OFF)
;***********************************************
ORG H'00'
GOTO START
START
;BU BÖLÜMDE PROGRAMINIZI YAZIN
NOP
GOTO START
;******************************************************
ORG 0X2100
;BU BÖLÜMDE GİRMEK İSTEDİĞİNİZ DATAYI YAZIN
DT "BEKLESENE"
END
Kod verirken # butonuna 2 kere tıklayıp vereceğimiz kodları 2 tırnak arasına alalım öyle verelim "]kod["
Biraz geç oldu ama nasıl yaptığımı yazayım.
EData $00,$00,$12,$20,$03,$02,$00,$00
...
..
.
bu formatta yazılıyor.Programlayıcı bu dataları ilk adresten itibaren pic in epromuna yazıyor.