RTV forum PL | NewsGroups PL

Zapis do EEPROM w ATmega: Dlaczego odczyt jest wymagany przed zapisem?

eeprom w atmaga ...

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Zapis do EEPROM w ATmega: Dlaczego odczyt jest wymagany przed zapisem?

JareC
Guest

Wed Jun 20, 2007 10:02 am   



witam

nic nie zapisuje, chyba, ze wczesniej wykonam odczyt spod tego adresu....
dlaczego?
kompilator CodeVisionAVR
ponizej kod:



#define EERE 0
#define EEWE 1
#define EEMWE 2
#define EERIE 3

void EEPROM_write(unsigned int Adr, unsigned char Dane)
{
#asm("cli");
while(EECR & (1<<EEWE ))
EEAR = Adr;
EEDR = Dane;
EECR |= (1<<EEMWE);
EECR |= (1<<EEWE);
#asm("sei");
}

unsigned char EEPROM_read(unsigned char Adr)
{
while(EECR & (1<<EEWE));
EEAR= Adr;
EECR |= (1<<EERE);
return EEDR;
}

JareC
Guest

Wed Jun 20, 2007 11:19 am   



Uzytkownik "czerstwy" <czerstwy@localhost.localdomain> napisal w wiadomosci
news:slrnf7hugj.jnv.czerstwy@chlor.kofeina.net...
Quote:
Dnia 20.06.2007 JareC <bill@microsoft.com> napisał/a:

void EEPROM_write(unsigned int Adr, unsigned char Dane)
{
#asm("cli");
while(EECR & (1<<EEWE ))

tu powinien byc srednik wg przykladu, mozliwe ze kompilator optymalizuje
kod w taki sposob ze to nie wykonuje sie poprawnie bo niby tak czy
inaczej powinno dzialac



no i dziala ... slepy juz jestem na stare lata

czerstwy
Guest

Wed Jun 20, 2007 11:41 am   



Dnia 20.06.2007 JareC <bill@microsoft.com> napisał/a:
Quote:

void EEPROM_write(unsigned int Adr, unsigned char Dane)
{
#asm("cli");
while(EECR & (1<<EEWE ))

tu powinien byc srednik wg przykladu, mozliwe ze kompilator optymalizuje
kod w taki sposob ze to nie wykonuje sie poprawnie bo niby tak czy
inaczej powinno dzialac


--
czerstwy
gg:9037311

elektroda NewsGroups Forum Index - Elektronika Polska - Zapis do EEPROM w ATmega: Dlaczego odczyt jest wymagany przed zapisem?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map