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

Adresse Microcontrolleur PIC



  1. #1
    GwadaBoug

    Adresse Microcontrolleur PIC


    ------

    Bonjour à tous,

    voila je vous expose mon probléme. Je suis en train de pogrammer mon microcontrolleur et je vérifie mes adresses.tout correspond sauf une seul.
    il y a un mot de configuration codé sur 13 bits. Le datasheet me dit que on doit l'écrire a l'adresse 0x2007 accessible seulment lors de la programmation.

    Or l'orsque je compile mon programme, Il l'écrit a l'adresse 0x400B (qui est égale à 2 fois 0x2007 ...). de plus les bits que je vois ne sont pas cohérants.

    je programme sur du PIC16F628.

    si quelqu'un à une idée ou sait pourquoi??

    je vous remercie d'avance

    -----

  2. Publicité
  3. #2
    DavidDB

    Re : Adresse Microcontrolleur PIC

    Salut,

    Quel langage et quel compilateur???

    Pour le mot de config, il faut utiliser la directive CONFIG qui place correctement les bits à l'adresse 0x2007.

    L'adresse 0x400B n'existe pas sur ce µC...

    David.

  4. #3
    GwadaBoug

    Re : Adresse Microcontrolleur PIC

    Bonjour David,

    Le language est celui de la machine, Cad l'assembleur.
    le compilateur est Mpasm. mais une fois le fichier compilé, l'adresse indiqué est 0x4007.c'est cela que je voulais éclaircir. de plus javé mi tous les bit à 1 mais lui ne les a pas tous mis à 1:s

  5. #4
    DavidDB

    Re : Adresse Microcontrolleur PIC

    En Assembleur, sur le mot de config, on ne tarvaille pas directement sur les bits(sauf si tu sais exactement ce que tu fais...)

    Mais, on utilise la directive CONFIG avec le nom symbolique derrière (que tu trouves en ouvrant le fichier .inc du pic) du style :

    CONFIG OSC = HS ; oscillateur HS

    David.

  6. #5
    freepicbasic

    Re : Adresse Microcontrolleur PIC

    le format INH8 travaille sur 1 octet à la fois.
    Pour avoir 12 ou 14 bits , il faut envoyer 2 octets.
    Le fichiers Hex à donc des adresses x 2

    c'est normal !
    A+, pat

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

    Re : Adresse Microcontrolleur PIC

    Salut,

    Citation Envoyé par freepicbasic Voir le message
    le format INH8 travaille sur 1 octet à la fois.
    Pour avoir 12 ou 14 bits , il faut envoyer 2 octets.
    Le fichiers Hex à donc des adresses x 2

    c'est normal !
    A oui, je n'avais pas pensé (et ne me suis jamais intéressé au fichier hex, d'ailleurs) que l'on parlait du fichier exécutable (.hex), et c'est pour cela qu'il n'y a pas de message d'erreur à l'assemblage du programme avec l' adresse 0x400B qui apparait uniquement dans le fichier HEX...

    David.

  9. Publicité
  10. #7
    GwadaBoug

    Re : Adresse Microcontrolleur PIC

    Rebonjour tout le monde!!

    donc si j'ai bien compris, les adresses sont multipliées par 2 dans le fichier .hex.
    et le code de programmation, lui aussi est multiplié par 2?

  11. #8
    freepicbasic

    Re : Adresse Microcontrolleur PIC

    et le code de programmation, lui aussi est multiplié par 2?
    Non, les adresses prog sont des adresses mot
    A+, pat

  12. #9
    RISC

    Re : Adresse Microcontrolleur PIC

    GwadaBoug,

    Les PICs utilisent l'architecture de type HARVARD (par opposition à beaucoup d'autres qui utilisent l'architecture Von Neumann).

    C-a-d qu'il a 2 espaces mémoire totalement séparés :
    La Flash (avec des mots de 14 bits pour le PIC16F628) et les files registers de 8bits (RAM + registres SFR).
    Quand on parle de l'architecture d'un micro on évoque toujours la taille du bus de DONNEE.

    Donc comme les fichiers INTEL transferrent 8 ou 16 bits, dans le cas d'un PIC il faut 2 octets (16bits) pour coder une instruction.

    Le document qui explique bien l'architecture mémoire de toute la famille "middle range" à laquelle appartient le PIC16F628 est celui-ci :
    http://ww1.microchip.com/downloads/e...Doc/31006a.pdf

    C'est pourquoi pour les instructions on parle de "mots" plutôt que d'octets

    Donc si tu regardes le fichier HEX du programme, tu verras
    * que chaque instruction occupe 2 octets
    * aux adresses 400E et 400F les 2 octets du registre de configuration (14 bits)

    a+

Sur le même thème :

Discussions similaires

  1. adresse de retour interruption sur PIC
    Par arzew dans le forum Électronique
    Réponses: 24
    Dernier message: 19/11/2007, 13h12
  2. PIC: Adresse des Ports .... pour un débutant
    Par jt06 dans le forum Électronique
    Réponses: 2
    Dernier message: 18/10/2007, 19h18
  3. port microcontrolleur
    Par katmai dans le forum Électronique
    Réponses: 12
    Dernier message: 17/08/2007, 11h37
  4. Driver USB microcontrolleur
    Par hakim34 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/06/2007, 09h20
  5. microcontrôlleur sur PCI
    Par tarask dans le forum Électronique
    Réponses: 12
    Dernier message: 10/08/2004, 16h32
Découvrez nos comparatifs produits sur l'informatique et les technologies.