реклама на сайте
подробности

 
 
> Есть потребность в использование 24с256, Порылся по форуму нашол следующее
TamTam
сообщение Jun 4 2006, 22:39
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Код
void write_byte_eeprom (unsigned int address, unsigned char data)
{
unsigned char sSREG;

sSREG = SREG; // регистр Статуса МК
#asm ("cli")
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write((unsigned char)address>>7);
i2c_write((unsigned char)address);
i2c_write(data);
i2c_stop();
SREG = sSREG;
delay_ms(11);

}



unsigned char read_byte_eeprom (unsigned int address)
{
unsigned char data;
unsigned char sSREG;

sSREG = SREG;
#asm ("cli")
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write((unsigned char)address>>7);
i2c_write((unsigned char)address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data = i2c_read(0);
i2c_stop();
SREG = sSREG;
return data;
}


но твориться какаято ерунда, то пише то непишет, траблы с клдом этих процедур, или я что то не так делаю.

для пробы делаю так

[code]
while (1)
{
int i;
for (i=0;i<1000;i++)
{
write_byte_eeprom (i,0x88) ;
delay_ms(80);
};
};
[code]
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Jun 5 2006, 02:10
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



kertis
Я так монял, что ваша прога не для AT24C256. Судя по вырезке автора топика она для другой микрухи (возможно для 24C01).

TamTam
Цитата
i2c_write((unsigned char)address>>7);

В обоих процедурах замените на:
i2c_write((unsigned char)address>>8);

Ещё проверьте процедуру задержки (возможно косячит). Если задержка неправильная (мала) то могут происходить аномалии.

Сообщение отредактировал GetSmart - Jun 5 2006, 02:13


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016