реклама на сайте
подробности

 
 
> Tiny24 не пишет в EEPROM, помогите разобраться
smk
сообщение Jan 30 2008, 14:35
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



в даташит есть такие примеры:

unsigned char EEPROM_read_8 (unsigned char Address)
{
while (EECR & (1<<EEPE));
EEARL= Address;
EECR |= (1<<EERE);
return EEDR;
}

void EEPROM_write_8(unsigned char Address, unsigned char Data)
{
while (EECR & (1<<EEPE));
EECR = (0<<EEPM1) | (0>>EEPM0);
EEARL= Address;
EEDR = Data;
EECR |= (1<<EEMPE);
EECR |= (1<<EEPE);
}


на их основе сделаны функции:

unsigned int EEPROM_read_16 (unsigned char AddressH, unsigned char AddressL )
{
unsigned int Data_eep_16;
Data_eep_16=EEPROM_read_8(AddressH);
Data_eep_16=(Data_eep_16<<8);
Data_eep_16=Data_eep_16+EEPROM_read_8(AddressL);
return Data_eep_16;
}

void EEPROM_write_16 (unsigned char AddressH, unsigned char AddressL, unsigned int Data)
{
unsigned int Data_eep_8;
Data_eep_8=(Data>>8);
EEPROM_write_8(AddressH, Data_eep_8);
Data_eep_8=(char) Data;
EEPROM_write_8(AddressL, Data_eep_8);
}

перед записью всегда запрещаются прерывания:
cli();
фуз EESAVE=1, тактовая - 8 МГц, внутренний RC.
В AVR Studio 4.13 все симулируется правильно, запись происходит. Программатором EEPROM пишется исправно.

Нет записи в EEPROM в ходе выполнения программы, не пойму почему. Прошу помочь разобраться. Заранее благодарен.

Сообщение отредактировал smk - Jan 30 2008, 14:53


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 06:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016