Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Programmation PIC : transtypage ??



  1. #1
    Kurosaki

    Programmation PIC : transtypage ??

    Bonjour à tous,

    J'en appelle à tous les PIC'eurs en herbe ! J'explique :

    Je stocke des bytes dans l'EEPROM (en suivant les consignes du datasheet).
    Jusque là, pas de problème, ça marche nickel, je peux récupérer ces données à l'identique.

    Je souhaite ensuite utiliser ces données pour effectuer divers calculs. J'écris donc :

    int chiffre = (int) Fonction_read_eeprom(adresse_d e_la_variable);

    Et là, c'est la surprise ! Le transtypage modifie la valeur lue, et ma constante 'chiffre' contient alors une valeur complètement farfelue !

    Je me doute que c'est dû à la manière dont sont rangés les bits en mémoire. Mais je n'ai aucune solution à ce problème qui use mes nerfs depuis 2 jours. Quelqu'un aurait-il une solution a proposer ?

    Merci

    -----


  2. Publicité
  3. #2
    sdec25

    Re : Programmation PIC : transtypage ??

    Salut.
    Je suppose que tu as créé la fonction Lire_EEPROM toi-même. Ce serait plus facile de t'aider si on avait son contenu.

  4. #3
    sdec25

    Re : Programmation PIC : transtypage ??

    J'ai fait quelques tests et les octets sont inversés dans un int :
    le nombre 1 est représenté sur 16 bits par 0x10 et non pas 0x01

    Si tu n'obtiens pas le même nombre après l'avoir lu dans l'EEPROM c'est que les octets sont inversés à un moment.
    Dernière modification par sdec25 ; 22/07/2008 à 12h19.

  5. #4
    RicounetZap

    Re : Programmation PIC : transtypage ??

    Juste pour confirmation, ta fonction va lire un BYTE (8 petits bits) ou un int (16 bits) ?
    Du moins, je crois qu'un int est défini sur 16 bits chez Microchip

  6. #5
    sdec25

    Re : Programmation PIC : transtypage ??

    Citation Envoyé par RicounetZap Voir le message
    Juste pour confirmation, ta fonction va lire un BYTE (8 petits bits) ou un int (16 bits) ?
    Du moins, je crois qu'un int est défini sur 16 bits chez Microchip
    Un int est bien sur 16 bits.
    D'ailleurs dans mon post précédent il fallait lire 0x0100 et pas 0x10.

  7. A voir en vidéo sur Futura
  8. #6
    Kurosaki

    Re : Programmation PIC : transtypage ??

    Re !

    J'ai vérifié ce que sdec25 a avancé et c'est bien vrai ! Les int sont à lire en sens contraire. Plus aucun souci désormais, tout roule ! Merci beaucoup !

  9. Publicité
  10. #7
    Kurosaki

    Re : Programmation PIC : transtypage ??

    Je précise juste qu'en disant "sens contraire", j'entends par la que le second byte reçu est à lire en premier (un int étant constitué de 2 byte).

Sur le même thème :

Discussions similaires

  1. erreur 0X00 programmation PIC plus questions sur les PIC
    Par ROTT dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  2. programmation pic en c
    Par parain dans le forum Électronique
    Réponses: 1
    Dernier message: 20/06/2007, 21h33
  3. programmation de pic en C
    Par jim@ dans le forum Électronique
    Réponses: 5
    Dernier message: 22/05/2007, 15h16
  4. Programmation de PIC
    Par behemerre dans le forum Électronique
    Réponses: 15
    Dernier message: 02/02/2007, 09h15
  5. pb programmation pic
    Par gari dans le forum Électronique
    Réponses: 4
    Dernier message: 01/12/2005, 18h01