Работа с EEPROM в микроконтроллере ADuC

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
kushman
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Работа с EEPROM в микроконтроллере ADuC

Сообщение kushman »

Добрый день!
Имею отладочную плату с контроллером ADuC845. Пытаюсь наладить запись в память EEPROM, однако возникает проблема - запись не происходит. Вроде все делаю по даташиту, перед записью байт стираю, но при чтении получаю 0xFF :( Ниже привожу код, может ко-то подскажет в чем дело.

Код: Выделить всё

void EEPROM_write_byte(char address1, char address2, char write_byte) {

	EADRH=address1;
	EADRL=address2;
	ECON=0x05;
	EDATA1=write_byte;
	ECON=0x02;
	
}

char EEPROM_read_byte(char address1, char address2) {

	char read_byte;
	EADRH=address1;
	EADRL=address2;
	ECON=0x01;
	read_byte=EDATA1;
	return read_byte;
		
}
Вродде код простейший, но не работает...А где собака порылась не могу найти.
Реклама
BorisSPB
Встал на лапы
Сообщения: 145
Зарегистрирован: Ср фев 01, 2012 10:55:53

Re: Работа с EEPROM в микроконтроллере ADuC

Сообщение BorisSPB »

Может адрес за пределами памяти, ведь EADRH,EADRL это адрес страницы, а не просто линейный адрес байта?
Реклама
kushman
Нашел транзистор. Понюхал.
Сообщения: 194
Зарегистрирован: Сб ноя 07, 2009 15:27:59

Re: Работа с EEPROM в микроконтроллере ADuC

Сообщение kushman »

Да, эти байты указывают на адрес страницы, их значение может принимать от 0 до 1023. На странице 4 байта EDATA1-4. С адресами я уже экспериментировал, никакой реакции. Все равно после команды записи в ECON, эта запись не происходит. Хотя нужный байт в EDATA попадает.
Ответить

Вернуться в «Разные вопросы по МК»