Страница 1 из 1

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

Добавлено: Пн апр 11, 2016 18:27:05
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;
		
}
Вродде код простейший, но не работает...А где собака порылась не могу найти.

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

Добавлено: Вт апр 12, 2016 12:21:58
BorisSPB
Может адрес за пределами памяти, ведь EADRH,EADRL это адрес страницы, а не просто линейный адрес байта?

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

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