PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   ghi và đọc eeprom? (http://www.picvietnam.com/forum/showthread.php?t=1503)

cskiller 04-06-2009 11:21 AM

Trích:

Nguyên văn bởi the_duyet (Post 26479)
Bác nào có ví dụ về ghi và đọc eeprom cho giá trị 16 bit thì cho a e tham khảo với, chứ nói thế này ứng dụng khó quá....

Prototype các hàm đọc ghi EEPROM 16/32 bits:
Code:

void write_eeprom_16(int16 address,int16 value); //Ghi so 16-bits
int16 read_eeprom_16(int16 address);  //Doc so 16-bits
void write_eeprom_32(int16 address,int32 value); //Ghi so 32-bits
int32 read_eeprom_32(int16 address);  //Doc so 32-bits

Hiện thực của các Prototype:
Code:

void write_eeprom_16(int16 address,int16 value)

  int i;                         
  for(i=0;i<sizeof(value);i++,address++){                                     
      write_eeprom(address,*((char *)(&value)+i));
  } 
}

int16 read_eeprom_16(int16 address)
{                     
  int16 ret;         
  int i;                             
  for(i=0;i<sizeof(int16);i++,address++){         
      *((char *)(&ret)+i)=read_eeprom(address);
  }                     
  return ret;     
}
                                                   
void write_eeprom_32(int16 address,int32 value)
{                                           
  int i;                         
  for(i=0;i<sizeof(value);i++,address++){                                     
      write_eeprom(address,*((char *)(&value)+i));
  }                                     
}                         
                                                 
int32 read_eeprom_32(int16 address)             
{                                                           
  int32 ret;         
  int i;                             
  for(i=0;i<sizeof(int32);i++,address++){         
      *((char *)(&ret)+i)=read_eeprom(address);
  }                     
  return ret;       
}


vinasheva 12-07-2010 10:02 PM

Cho mình hỏi 2 cách sau có giống nhau k?
1. #rom 0x2100={1}
2. write_eerom(0x000,0x01)
Mình thử dùng cách thứ 2 và dùng read_eeprom thì trả giá trị đúng. Còn cách đầu tiên thì k dc.


Múi giờ GMT. Hiện tại là 07:37 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam