Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22

    Memorizzare Array bidimensionale in EEPROM Arduino 4kB

    Buongiorno,
    domanda da mezzo milione di dollari.
    E' possibile memorizzare un array bidimensionale di (100 righe e 2 colonne) in una cella della eeprom di un ATMEGA128 da 4kB??? O devo spezzarlo e utilizzare una cella per ogni riga??
    Linguaggio simil C....ambiente di sviluppo Arduino

  2. #2
    Come ho recentemente spiegato anche qui, sulle normali architetture gli array "bidimensionali" sono comunque memorizzati linearmente, poiché di norma non esiste altra possibilità fisica data la topologia di memoria impiegata. Si tratta semplicemente di adottare uno dei possibili ordinamenti (row major, column major...) e seguirlo coerentemente.

    Le celle delle EEPROM dati usualmente sono in grado di ospitare un singolo byte, ovvero 8 bit. L'effettiva occupazione di memoria dipende dal tipo di dato memorizzato nell'array C: char, short int, int, long int, tutti strettamente dipendenti dall'architettura e in genere variabili tra 1 e 4 byte (è sufficiente leggere la documentazione e/o eseguire un rapido test con sizeof()). Supponendo che si tratti di un array di int a 16 bit, si avranno 100 x 2 X (16 / 8) ovvero 400 locazioni o celle di EEPROM occupate. Per "spezzare" valori multibyte esistono fin dalla notte dei tempi appositi idiomi basati su shift e maschere AND, che si trovano squadernati davvero ovunque.

    Attenzione anche al fatto che la memoria EEPROM Flash ha per costruzione un limite fisico al numero di cicli di memorizzazione consentiti, dell'ordine di 10^5 o 10^6, ovviamente specificato tra gli absolute maximum ratings nel relativo datasheet.
    Ultima modifica di M.A.W. 1968; 10-07-2014 a 15:29
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.