Stockage en EEPROM

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Je travaille actuellement sur un projet sur mikroC (PIC18F) avec plusieurs tableaux, dans ces tableaux il y a les paramètres que va charger le programme pour s'initialiser.

J'ai pour but de stocker les informations qui sont dans mes tableaux dans la mémoire EEPROM de mon pic, cependant je ne sais pas trop comment les stocker dans la mémoire eeprom.

exemple d'un de mes tableaux :

const int tab1[10]={80, 170, 0, 900, 3, 10, 20, 4000, 42, 50};

je sais qu'il existe 2 routines liée à l'EEPROM :

EEPROM_write(adresse, data)

EEPROM_read(adresse)

cependant je ne sais pas comment utiliser ma routine write pour qu'elle enregistre les 10 informations dans l'EEPROM.

Merci d'avance pour votre aide.

+0 -0

Cette réponse a aidé l'auteur du sujet

Il y a deux challenges :

  1. Faire une boucle pour enregistrer successivement chaque donnée à une nouvelle adresse de la ROM (facile)
  2. Bien comprendre que chaque adresse de la ROM est fait pour stocker un octet, et que donc un int c'est trop gros (et que donc il faudra prendre deux cases mémoires, ce qui va pourrir un code "boucle simple" du challenge ci-dessus).

Ce tuto devrait t'aider à résoudre le problème, c'est pour Arduino mais la logique est la même : https://zestedesavoir.com/tutoriels/374/gestion-de-la-memoire-sur-arduino/#3-11461_leeprom-une-memoire-morte

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0
Auteur du sujet

Merci pour votre réponse, elle m'a grandement aidé ! j’obtiens ceci :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const int tab1[10]={40, 150, 0, 90, 1, 10, 20, 6000, 72, 20}

void sauvertab1(int a1, int e1, unsigned int tab1)
{
  a1 = 0;      
  e1 = 0;      
  boucle1 =0;  

  do
  {

    unsigned char faible = tab1 +e1 & 0x00FF; 
    unsigned char fort = (tab1 +e1 >> 8) & 0x00FF; 


    EEPROM_write(0x00+a1, fort) ; 
    a1++;
    EEPROM_write(0x00+a1, faible) ; 
    a1++;
    boucle1++;
  } while(boucle1 != 10);

}

Maintenant, ce tableaux que j'enregistre, dans la suite de mon programme j'aimerai le récupérer, j'ai compris le principe, le cour est très bien expliqué mais dans mon cas, j'aimerai mettre directement mes valeurs dans un tableau.

Mon utilisation des tableaux se limite à ceux que je code moi même, je n'arrive pas à coder un tableau vide et dont les éléments ce remplissent grâce à la lecture de la mémoire EEPROM.

Encore merci d'avance pour votre aide!

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte