Trích:
Nguyên văn bởi saoden1102
Bác Nampn ơi cho em hỏi với a. em dùng 2 hàm để ghi dữ liệu vào eeprom ngoài (24c512) mà sao ko được(nó bị ghi vào rom trong của pic) anh có cách nào ko giúp em với a.
Code:
void write_eeprom(long int address,unsigned char data)
{
int upper_addr;
int lower_addr;
upper_addr=(int)(address >> 8);
lower_addr=(int)(address & 0x00FF);
i2c_start();
i2c_write(0xa0);
i2c_write(upper_addr);
i2c_write(lower_addr);
i2c_write(data);
i2c_stop();
delay_ms(11);
}
//********************************************************
unsigned char read_eeprom(long int address)
{
unsigned char data;
int upper_addr;
int lower_addr;
upper_addr=(int)(address >> 8);
lower_addr=(int)(address & 0x00FF);
i2c_start();
i2c_write(0xa0);
i2c_write(upper_addr);
i2c_write(lower_addr);
i2c_start();
i2c_write(0xa1);
data=i2c_read(0);
i2c_stop();
return(data);
}
|
Bạn đang dùng trình biên dịch nào? Nếu bạn dùng CCS C thì các hàm của bạn có vẻ trùng tên với các hàm đọc, ghi EEPROM của trình biên dịch. Bạn nên xem ví dụ giao tiếp với EEPROM ngoài của CCS C (tập tin ex_extee.c, họ dùng các hàm có sẵn là READ_EXT_EEPROM() và WRITE_EXT_EEPROM()).
Thân,