Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

eprom char

Başlatan taytis, 09 Mayıs 2007, 12:00:17

taytis

Arkadaşlar selam , eproma kelime kaydetmek istiyorum fakat  daha önce hiçkullanmadım ,CCS help'i de pek yardımcı olmadı bana bir örnek verirseniz sevinirim.Aşağıda yapmak istediğim programdan ufak bir parça var. Şimdiden sağolun


int x,y;
char z;
if(x==1){z=picproje.org}

daha sonrada z'yi eproma yazıcam
sonrada okuyacam printf ile basıcam

mustaphaerdem

slm dostum.

eeprom belleğe veri yazmak için EEPROM_WRITE(adres, veri) okumak için EEPROM_READ(adres) komutu kullanılır.

Örneğin EEPROM_WRITE(1, Z) eepromun 1 nolu adresine Z değişkeninin değerini yazar.

Z=EEPROM_READ(1)  eepromun 1 nolu adresindeki veriyi Z değişkenine kaydeder.
Korkarak yaşıyorsan sadece hayatı seyredersin.

taytis

çok güzel yazmışında , z değişkeni kelime atıyacam.
char z;
z=deneme;


EEPROM_WRITE(1, Z);
k=eeprom(1);


bu hata veriyor,çalışanı lazım; :))))

alabora

Z değişkenini bir diziye at. Ve bir döngü içinde bu dizinin her bir elemanını eproma yaz.
Esasında böyle bir string değişkene harf harf müdahele edilebiliyor olması lazım.CCS'de oluyormu bunu bilmiyorum. ama C#'ta bu oluyor mesela.

CCS bilmiyorum kodu o yüzden yazamayacağım.

M_B

Merhaba arkadasım umarım bu ısını gorur veya fıkır verır.
kolay gelsın.




#include <16F84.H>
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2)

#include
#include <2402.C>


main() {

  byte value,cmd;
  EEPROM_ADDRESS address;

  init_ext_eeprom();

  do {
     do {
        printf("\r\nRead or Write: ");
        cmd=getc();
        cmd=toupper(cmd);
        putc(cmd);
     } while ( (cmd!='R') && (cmd!='W') );

     printf("\n\rLocation: ");

#if sizeof(EEPROM_ADDRESS)==1
     address = gethex();
#else
#if EEPROM_SIZE>0xfff
     address = gethex();
#else
     address = gethex1();
#endif
     address = (address<<8)+gethex();
#endif

     if(cmd=='R')
        printf("\r\nValue: %X\r\n",READ_EXT_EEPROM( address ) );

     if(cmd=='W') {
        printf("\r\nNew value: ");
        value = gethex();
        printf("\n\r");
        WRITE_EXT_EEPROM( address, value );
     }
  } while (TRUE);

}
*******************************************

24c02. c dosyası


#ifndef EEPROM_SDA

#define EEPROM_SDA  PIN_B7
#define EEPROM_SCL  PIN_B6

#endif

#use i2c(master,sda=EEPROM_SDA, scl=EEPROM_SCL)

#define EEPROM_ADDRESS byte
#define EEPROM_SIZE    256

void init_ext_eeprom() {
  output_low(eeprom_scl);
  output_high(eeprom_sda);
}


void write_ext_eeprom(byte address, byte data) {

  i2c_start();
  i2c_write(0xa0);
  i2c_write(address);
  i2c_write(data);
  i2c_stop();
  delay_ms(11);
}


byte read_ext_eeprom(byte address) {
  byte data;

  i2c_start();
  i2c_write(0xa0);
  i2c_write(address);
  i2c_start();
  i2c_write(0xa1);
  data=i2c_read(0);
  i2c_stop();
  return(data);
}
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Digimensch

Peki arkadaslar eepromda kac byte'lik veya kbytelik adres var?
Bu degisik eepromlarda degisirmi?
Birde her pic eeprom varmi?
örnegin PIC16F84 de eepürom varmi?

MURSEL

16f84 64bayte sanırım  16f628 de 128bayt   her pic de eeprom yoktur  C serielrinde nadir birkaçtane  görebildim F serilerinde hepsinde var gibi.. picin eepromu yetmiyorsa harici eepromda  kullanıp istedigini elde edebilirsin

Digimensch

Peki bizim örnegin ccs ile derlediimiz bir hex dosysini PIC'e yazdigimizizda bu PIC'in neresine yaziliyor?Eepromunami yoksa neresine?
Pic'de eeprom olmasinin ne faydasi nedir?
Eeeproma ne zaman ihtiyac vardir?

SpeedyX

Alıntı yapılan: "Digimensch"Peki bizim örnegin ccs ile derlediimiz bir hex dosysini PIC'e yazdigimizizda bu PIC'in neresine yaziliyor?Eepromunami yoksa neresine?
Pic'de eeprom olmasinin ne faydasi nedir?
Eeeproma ne zaman ihtiyac vardir?
EEPROM nedir?

ROM nedir?

Digimensch

Ya soruya soru ile cevap veren arkadaslarda olmasa burasi cok SIKICI olacak.
iyi ki varsiniz?
Arkadaslar yukarda sordugum soruma lütfen bilen ve soruya  soru ile cevap vermeyecek arkadaslar cevaplarlarsa sevinirim.

Alıntı YapPeki bizim örnegin ccs ile derlediimiz bir hex dosysini PIC'e yazdigimizizda bu PIC'in neresine yaziliyor?Eepromunami yoksa neresine?
Pic'de eeprom olmasinin ne faydasi nedir?
Eeeproma ne zaman ihtiyac vardir?

SpeedyX

Alıntı yapılan: "Digimensch"Ya soruya soru ile cevap veren arkadaslarda olmasa burasi cok SIKICI olacak.
iyi ki varsiniz?
Arkadaslar yukarda sordugum soruma lütfen bilen ve soruya  soru ile cevap vermeyecek arkadaslar cevaplarlarsa sevinirim.
Onlar soru değil Cevap.

Program kodları (HEX) PIC in ROM una yazılır.
EEPROMuna ise sistemin hafızada kalıcı olarak (elektrik kesilse bile silinmeyecek) saklamak isteyeceği değerler sistem(PIC|program ile) tarafından yazılır.
Mesela bir şifreli kilit devresi yaptım. Bunun şifreside değiştirilebiliyor olması lazım... Ozaman bu şifreyi EEPROMda saklarım ki her şifre değiştirmek istediğimde PICi tekrar programlamak zorunda kalmayayım. Yani şifreyi ROMa değilde EEPROMa yazarım!