[PIC] Utiliser des routines assembleur dans le code C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

[PIC] Utiliser des routines assembleur dans le code C



  1. #1
    pseudoblogeus

    [PIC] Utiliser des routines assembleur dans le code C


    ------

    Bonjour,

    J'essaye de faire communiquer un PIC18F4550 avec des composants 1-wire.

    J'ai trouvé pas mal de routine sur le web pour établir des communications 1-Wire mais en assembleur.

    Or, j'utilise le compilateur c18 pour programmer mon PIC en C.

    D'où ma question comment incorporer des routines assembleur dans mon programme en C.

    Exemple comment appeler la fonction wait(time) dont la routine en assembleur est celle-ci :
    Code:
    WAIT:MACRO TIME
    ;Delay for TIME µs.
    ;Variable time must be in multiples of 5µs.
          MOVLW         (TIME/5)-1                  ;1µs
          MOVWF         TMP0                        ;1µs
          CALL          WAIT5U                      ;2µs
          ENDM
    Faut-il créer une sortie de librairie précompilée contenant les instructions en assembleur. Insérer un header dans le fichier C pour donner le prototype des fonctions, puis appeler tout simplement la fonction dans mon code C ...

    Quelques conseils ne seraient pas refus.

    Merci de votre aide.

    -----

  2. #2
    mat64

    Re : [PIC] Utiliser des routines assembleur dans le code C

    Bonjour,

    je ne l'ai jamais fait avec un pic, alors je ne pourrais pas te donner d'aide détaillée. . En général tu as certaines règles à respecter quand tu mix C/asm. J'ai trouvé dans la doc (http://ww1.microchip.com/downloads/e...ide_51288j.pdf) ce paragraphe que tu devrais commencer par lire : 3.2.5.2 CALLING ASSEMBLY FUNCTIONS FROM C

  3. #3
    pseudoblogeus

    Re : [PIC] Utiliser des routines assembleur dans le code C

    Citation Envoyé par mat64 Voir le message
    Bonjour,

    je ne l'ai jamais fait avec un pic, alors je ne pourrais pas te donner d'aide détaillée. . En général tu as certaines règles à respecter quand tu mix C/asm. J'ai trouvé dans la doc (http://ww1.microchip.com/downloads/e...ide_51288j.pdf) ce paragraphe que tu devrais commencer par lire : 3.2.5.2 CALLING ASSEMBLY FUNCTIONS FROM C
    Merci, ça devrait mettre utile.

    J'vous tiens au jus

  4. #4
    slicksfr

    Re : [PIC] Utiliser des routines assembleur dans le code C

    Citation Envoyé par pseudoblogeus Voir le message
    Merci, ça devrait mettre utile.

    J'vous tiens au jus
    Alors, ça marche ???
    A+
    Slicks

  5. A voir en vidéo sur Futura
  6. #5
    Fred des montagnes

    Re : [PIC] Utiliser des routines assembleur dans le code C

    Salut,

    J'avais déjà du faire la même chose, mais sous un 30F donc avec le compilateur C30. IL fallait faire tout d'abord un fichier .s qui commençait par:
    Code:
    .text
    .global _Nom_de_la_fonction
    
    _Nom_de_la_fonction:
    
    code
    code
    code
    Il fallait déclarer le prototype de la fonction sous le C dont le contenu sera le fichier en assembleur. Par exemple :
    Code:
    extern void Nom_de_la_fonction(int*,int*,int*,int*);
    Puis quand on appel la fonction (toujours sous le C), les paramètres sont affectés dans l’ordre aux registres Wxx. Il faut de préférence utilisé des pointeur, comme ça c'est juste l'adresse qui est chargé dans les registre et on a moins de problème du à la taille de la variable.

    Nom_de_la_fonction(a, b, c);

    a==>W0
    b==>W1
    c==>W2

    On peut également écrire quelques instructions en assembleur directement dans le code C. Mais cela n’est pas très pratique, surtout si le nombre d’instructions est important.

    Code:
    int temp;
    
    int main (void)
    {
    
    asm("MOV #5,W0\n\t"
    "MOV W0,_temp\n\t");
    
    }

Discussions similaires

  1. [PIC] Routines pour transmission en code Manchester
    Par invite87be5ae9 dans le forum Électronique
    Réponses: 3
    Dernier message: 04/11/2008, 00h37
  2. Assembleur pour PIC - BTFSC
    Par Toufinet dans le forum Électronique
    Réponses: 12
    Dernier message: 11/03/2008, 07h29
  3. recherche assembleur pour PIC
    Par BastienBastien dans le forum Électronique
    Réponses: 5
    Dernier message: 09/03/2008, 18h28
  4. truc en langage assembleur PIC
    Par invite412b515c dans le forum Électronique
    Réponses: 0
    Dernier message: 04/06/2007, 20h05
  5. Programmation assembleur sur PIC
    Par inviteebefde8d dans le forum Électronique
    Réponses: 0
    Dernier message: 19/03/2007, 09h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.