Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Зачем нужно пустое чтение ЕЕПРОМ?

Непрочитано 04.02.2013, 07:37  
Janush
Частый гость
 
Регистрация: 09.11.2012
Сообщений: 46
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Janush на пути к лучшему
По умолчанию Зачем нужно пустое чтение ЕЕПРОМ?

ВСем доброго времени.

Стало интересно зачем нужно пустое чтение с ЕЕПРОМ.

if ((EECR&0x02)==0 ) {
EEAR=0; EECR=0x01;
volatile byte tmp=EEDR;
}

зачем это?
Реклама:
Janush вне форума  
Непрочитано 04.02.2013, 07:42  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Вообще-то при нулевых 4 и 5 битах eecr выполняется стирание и запись
niXto вне форума  
Непрочитано 04.02.2013, 07:50  
Janush
Частый гость
 
Регистрация: 09.11.2012
Сообщений: 46
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Janush на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Что то не так. 4 и 5 eecr(если считать от 0 до 7) -зарезервированы.
Janush вне форума  
Непрочитано 04.02.2013, 09:20  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Какой контроллер? Это для мега48
niXto вне форума  
Непрочитано 04.02.2013, 11:23  
Janush
Частый гость
 
Регистрация: 09.11.2012
Сообщений: 46
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Janush на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Mega16, Mega32
Janush вне форума  
Непрочитано 04.02.2013, 15:52  
holostjak
Прохожий
 
Регистрация: 24.05.2007
Адрес: Казань
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
holostjak на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Я в своё время делал пустое чтение после записи В EEPROM в атмелах,чтобы память не слетала. Так называемая "ячейка парковки".
holostjak вне форума  
Непрочитано 04.02.2013, 18:01  
Janush
Частый гость
 
Регистрация: 09.11.2012
Сообщений: 46
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Janush на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

holostjak, можно поподробнее. я по этому поводу как раз думал. слышал краем уха что с первыми ячейками какие то глюки связаны.
Janush вне форума  
Непрочитано 04.02.2013, 19:11  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Сообщение от Janush Посмотреть сообщение
holostjak, можно поподробнее. я по этому поводу как раз думал. слышал краем уха что с первыми ячейками какие то глюки связаны.
Глюки были на AT90 (первые АВРы), на Мегах их не было никогда.
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
Janush (04.02.2013)
Непрочитано 04.02.2013, 19:14  
Janush
Частый гость
 
Регистрация: 09.11.2012
Сообщений: 46
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Janush на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Хорошо. Тогда по какой причине все таки может слетать память?
Janush вне форума  
Непрочитано 04.02.2013, 19:17  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Зачем нужно пустое чтение ЕЕПРОМ?

Сообщение от Janush Посмотреть сообщение
ВСем доброго времени.

Стало интересно зачем нужно пустое чтение с ЕЕПРОМ.

if ((EECR&0x02)==0 ) {
EEAR=0; EECR=0x01;
volatile byte tmp=EEDR;
}

зачем это?
Не нужно никакое пустое чтение (имхо)...

Код:
unsigned char ReadByteFromEEPROM(unsigned short addr)
{
	unsigned char i;

	while (EECR&(1‹‹EEWE)) ;

	EEAR=addr;
	EECR|=0x01;
	i=EEDR;
	// установка адреса в 0 - бессмысленная операция
	EEAR=0;

	return(i);
}

void WriteByteToEEPROM(unsigned short addr, unsigned char new_byte)
{
	
	if (new_byte==ReadByteFromEEPROM(addr))	
 		return ;
	EEAR=addr;
	EEDR=new_byte;
	unsigned char int_state=__save_interrupt();
	__disable_interrupt();
	EECR|=(1‹‹EEMWE);
	EECR|=(1‹‹EEWE);

	__restore_interrupt(int_state);
	
	while (EECR&(1‹‹EEWE)) ;
}

Последний раз редактировалось _Артём_; 04.02.2013 в 19:23.
_Артём_ вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с еепром 24Схх Помогите разобраться artyomugr Микроконтроллеры, АЦП, память и т.д 15 10.09.2011 13:34
Копировщик ЕЕПРОМ russo_turisto Микроконтроллеры, АЦП, память и т.д 14 04.06.2011 12:30
pic16f628 , I2C и ЕЕПРОМ 24С08 stepashka Микроконтроллеры, АЦП, память и т.д 13 07.03.2008 07:14
помогите зачем нужен ASMфаил иHEXфаил.и какой нужно прошиват golinskiy Микроконтроллеры, АЦП, память и т.д 4 21.05.2006 10:41


Часовой пояс GMT +4, время: 03:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.