здравсивуйте
задача такая:
есть Atmega 8 ,который связан с EEPROM 24с32 по шине I2C.
необходимо записать байты по мере поступления на 24c32 до заполнения и при необходимости считывать эти байты с любого адреса.
Я могу писать программы только на СИ и умею работать только в CVAVR .
Все попытки найти функции чтения-записи для 24с32 не увенчались успехом.
Коты всегда выручали и надеюсь что на этот раз тоже не оставят в беде.
Буду благодарен за любую информацию.
pyzhman,
это Я видел но так и не понял как байт записать в 24с32 используя I2c.h
Если только подакажете как им пользоваться (там нет никаких коментариев),век не забуду.
родные ведь если я мог бы сразу разобратся я бы не обратился на форум а ведь мучился и ничего.
Если бы дали примерчик молюсенького кода как записать в 24с32 хоть один единственный байт (например 0x34),
я дальше сам бы разобрался.
дорогой Я эти даташиты все перерыл и знаю принципы работы ,но как в программе то все это записать?
вот для 24с16 существует набор функции для записи и сшитывания в CVAVR это выглядет так:
unsigned int eep_read(unsigned int address)
{
unsigned char data;
i2c_start();
i2c_write((EEPROM_BUS_ADDRESS | ((address>>7) & 0x0E)));
i2c_write(address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
//-------------------------------------------------------------------------------------------------------------------
void eep_write(unsigned int address, unsigned char data)
{
i2c_start();
i2c_write((EEPROM_BUS_ADDRESS | ((address>>7) & 0x0E)));
i2c_write(address);
i2c_write(data);
i2c_stop();
}
---------------------------------------------
и тут ясно чтобы записать байт по какому то адресу нужно использовать функцию записи
write(0x34,0x23), те по адресу 0x34 запишется 0x23 байт и все дела.
но это для 24c16
тае вот Я хочу найти такие же функции для 24с32 . Наверно и они существуют и придет конец моим мучениям.
Там разница в том, что у 24с16 старшие биты адреса входят в контрольный байт, а в 24с32 в контрольный байт входят биты выбора микросхемы, а адрес передается двумя байтами за контрольным. Попробуйте такой вариант (не проверял, но суть должна быть понятна). Ножки A2-A0 микросхемы на корпус.
вы просто умница!!!!!!!!!!!!!
байты записываются во все ячйки на любой адрес
Слов не нахожу молодцы,вот это помощь. ответ в точку. Чтение еще не проверял но убежден что и там все будет нормально.
В общем я ваш должник.
всем также спосибо ибо не сомневаюсь что от чистого сердца хотели помочь .
Чтобы не создавать темы, пишу сюда.
Возможно ли сделать в СИ доступ к ячейкам внешней памяти (например как здесь внешняя епром, или к внешним регистрам сдвига)как к обычным переменным , объявив их каким хитрым образом.
что то типа этого