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