logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zapis tablicy danych z kompilatora do EEPROMU

sitec 13 Sty 2009 18:54 1398 4
  • #1 5993918
    sitec
    Poziom 13  
    const uint8_t test[17]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,};
    static EEMEM uint8_t test_ee[17];
    
    //funkcja
    void eeprom()
    {
    	eeprom_write_block(test_ee, test, 17);
    }


    Jak zapisać stałą test[17], żeby kompilator nie rezerwował dla niej pamięci tylko bezpośredio zapisał do EEPROMU
  • #2 5994162
    elektryk
    Poziom 42  
    Nie wiem jakiego używasz kompilatora, ale z reguły wystarczyło nakazać żeby tablica była pod określonym adresem (oczywiście zakładając że EEPROM jest wbudowany w uP.
  • #3 5994184
    KowalD
    Poziom 17  
    jakiej pamieci nie rezerwowal?? ram, czy flash (skoro to ma byc stala, to moze po prostu w pamieci flash ja umiescic)?? gcc??
  • #4 5994222
    MarasK
    Poziom 18  
    unsigned char EEMEM zapychacz[4]; //zabezpieczenie przed zapisem na poczatku eeprom (moze byc wadliwe)
    unsigned int EEMEM zmienne[5];		//obszar zmiennych w eeprom

    Pierwsza linijka jest po to, aby kompilator nie zapisywał nic w pierwszych komórkach - u mnie dawały błędne odczyty.
  • #5 5994290
    sitec
    Poziom 13  
    A więc tak
    Kompilator WinAvr, procek Atmega16

    chodzi o to że chce zapisać daną tablice (const) bezpośrednio do EEPROMU, żeby kompilator nie rezerwował mi dla niej pamieci RAM. Ponieważ ona jest mi potrzebna tylko do odczytu bajt po bajcie.

    Dodano po 4 [minuty]:

    uint8_t EEMEM test_ee[17]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,};


    Dzieki kolego teraz już zapisałem do eepromu...
    Pytanie jak ja prawidłowo odczytać ...?

    Dodano po 3 [minuty]:

    wystarczy???
    zmienna = eeprom_read_byte(test_ee[i])


    Dodano po 14 [minuty]:

    Dzięki za Pomoc już sobie poradziłem!!
REKLAMA