Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Tout ce qui n'a pas de catégorie !
Simulation PROTEUS et écriture dans l'EPROM
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#1 Message par gwion » dim. 19 févr. 2023 20:38

Bonsoir,

Je fais une simulation de lecture/écriture en EPROM avec un PIC12LF1840, MPLAB X dernière version et XC8 (C99).
J'utilise EEPROM_READ(adresse) et EEPROM_WRITE(adresse,data), mais à priori je n'ai rien de stocké. Peut-être que ce n'est pas prévu dans la simulation ?
Merci de vos conseils précieux.

Bruno

Simulation PROTEUS et écriture dans l'EPROM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » lun. 20 févr. 2023 02:48

Bonjour gwion, et tout le forum,

:roll: As tu essayé dans la vrai vie :?:

Sinon coté simulateur ça doit fonctionner, surement un problème dans ton programme, ou alors le XC8 bug encore :lol:

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Simulation PROTEUS et écriture dans l'EPROM
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#3 Message par gwion » lun. 20 févr. 2023 10:27

Bonjour Temps-x (©x)

Merci.
Je n'ai pas testé en réel, il faut que je soude le SOIC sur un adaptateur.
Le programme est tellement simple que le seul bug possible est un problème de typage des variables. J'ai testé diverses combinaisons et rien de rien.

Simulation PROTEUS et écriture dans l'EPROM
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#4 Message par francois77 » lun. 20 févr. 2023 15:07

Bonjour,

Avec Proteus, il te faut un fichier d'init de ton eeprom

Pas d'écriture dans ton fichier en réel, c'est juste un fichier d'init

Si ton programme fonctionne, tu devrais voir évoluer les valeurs de ton eeprom dans Proteus avec ou sans fichier init

A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Simulation PROTEUS et écriture dans l'EPROM
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#5 Message par gwion » lun. 20 févr. 2023 19:32

Bonjour François,

Merci.
Je viens de trouver dans le menu de debug de quoi afficher le contenu de l'EPROM virtuelle. Ce que j'y écris y figure bien. Par contre quand je tente la lecture dans le programme, je n'ai rien en retour.

Simulation PROTEUS et écriture dans l'EPROM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#6 Message par Temps-x » mar. 21 févr. 2023 01:32

Bonjour gwion, francois77, et tout le forum,

gwion a écrit :Source du message Par contre quand je tente la lecture dans le programme, je n'ai rien en retour.

Mets le fichier que tu as créé sous proteus ici, quand puisse voir pourquoi sa ne fonctionne pas.

gwion a écrit :Source du message Temps-x (©x)

8-) Merci de préciser pour le copyright du X

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Simulation PROTEUS et écriture dans l'EPROM
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#7 Message par gwion » mar. 21 févr. 2023 09:13

Bonjour à tout le monde,

Merci pour votre intérêt à ma question basique :)

Et finalement ça fonctionne :)

je mets un code qui tourne avec XC8 pour le cas où un débutant serait également dans le doute à l'avenir :

Code : Tout sélectionner

    unsigned char uc_adrs = 0x00; // adresse eeprom
    unsigned char uc_valeeprom ;
    for (int i;i<=255;i++)
    {
        uc_adrs = i;
        uc_valeeprom = uc_adrs;
        // à la 1ère exécution  penser à activer la ligne qui suit pour fixer le contenu de l'eeprom
        //EEPROM_WRITE(uc_adrs,uc_valeeprom);
        uc_valeeprom = EEPROM_READ( uc_adrs ); // lire la valeur stockée à l'adresse spécifiée
        if ( uc_valeeprom == uc_adrs )
        {
            UART_write_string("Lu ok\r\n");
        }
        else
        {
            UART_write_string("Lu ko\r\n");
        }
    } 


Dans Proteus, il faut aller dans le menu du debugger et choisir "EPROM memory" dans "PIC CPU" pour voir le contenu de l'eprom virtuelle :

Capture d’écran 2023-02-21 090504.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.


Retourner vers « Coin Fourre-tout »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 38 invités