Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

WinAVR i eeprom.h

Kubbaz 05 Sep 2006 20:43 2072 6
  • #1
    Kubbaz
    Level 26  
    Witam

    Chciałem się zapytać jak używać i do jakich celów służą poniższe funkcje:

    Code:
    uint16_t eeprom_read_word (const uint16_t *addr)
    
    void eeprom_read_block (void *pointer_ram, const void *pointer_eeprom, size_t n)
    void eeprom_write_word (uint16_t *addr,uint16_t value)
    void eeprom_write_block (const void *pointer_ram, void *pointer_eeprom,
    size_t n)

    Z grubsza wiem że do zapisu i odczytu z wewnętrznej pamięci EEPROM uC, ale co dokładniej ........
    Co mam rozumieć poprzez słowa word i block.
    I co jest argumentami w powyższych funkcjach i co ewentualnie w nie można wpisać ??
  • #2
    max_gg
    Level 26  
    eeprom_read_word - odczytaj słowo (16-bit), jako parametr podajesz adres.
    eeprom_read_block - odczytaj blok - czyli kilka(naście) bajtów, podajesz adres pamięci ram, gdzie ma trafić, adres początku i ilość bajtów.
    eeprom_write_word - zapisz słowo, jako parametr adres i wartość do zapisu
    eeprom_write_block - zapisz blok, parametry podobnie jak przy odczycie...

    Pozdrawiam!
  • #3
    GienekS
    Level 32  
    max_gg wrote:
    kilka(naście) bajtów
    dokladnie tyle size_t n elementow.
  • #4
    max_gg
    Level 26  
    Tak, ale to zmienna - więc od pytającego zależy, ile bajtów ;)

    Pozdrawiam!
  • #5
    Goompas
    Level 13  
    Podlacze sie z pytaniem pod temat, chce zapisac liczbe 8 bitowa(max 0xFF) w wewnetrznej pamieci eeprom w komorce o adresie powyzej 256d, ktorej funkcji uzyc? Np do komorki o adresie 456d zapisac wartosc 0xCE, czy to bedzie prawidlowe?
    unsigned short adres=456;
    unsigned char wartosc=0xCE;
    eeprom_write_byte(adres, wartosc);
  • #6
    GienekS
    Level 32  
    Najlepiej stosowac taki rodzaj typu zmiennej jaki jest w definicji
    Code:
    eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
    to napewno bedzie dzialalo.