Процессор - Atmega8. Пока что тактируется от внутренней RC-цепочки.
В эмуляторе работает, а в железяке совсем не хочет
Код: Выделить всё
#define EEPROM_BUS_ADDRESS 0xA0
unsigned char eep_read(unsigned char address1, unsigned char address2) {
unsigned char data; //переменна¤ дл¤ прочитаных данных
i2c_start(); //посылаем команду "старт" в шину i2c
i2c_write(EEPROM_BUS_ADDRESS); //посылаем в шину адрес устройства
i2c_write(address1);
i2c_write(address2); //посылаем в шину адрес читаемой ¤чейки
i2c_start(); //снова посылаем "старт" в шину
i2c_write(EEPROM_BUS_ADDRESS | 1); //незнаю зачем но без этого не работает
data=i2c_read(0); //принимаем данные с лини и сохран¤ем в переменную
i2c_stop(); //посылаем команду "стоп"
return data; //возврощаем значение прочитаного
}
void eep_write(unsigned char address1, unsigned char address2, unsigned char data) {
i2c_start(); //посылаем команду "старт" в шину i2c
i2c_write(EEPROM_BUS_ADDRESS); //посылаем в шину адрес устройства
i2c_write(address1);
i2c_write(address2); //посылаем в шину адрес записываемой ¤чейки
i2c_write(data); //посылаем данные дл¤ записи
i2c_stop(); //посылаем команду "стоп"
}Код: Выделить всё
eep_write(0x00,0x03,0x00);
readbyte=eep_read(0x00,0x03);
lcd_gotoxy(0,1);
lcd_putchar(readbyte);Флешку использую at24c16, WP,A0-A3 на массе.
Подскажите, люди умные



