C/asm
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

C/asm



  1. #1
    invite3f2bb8c8

    C/asm


    ------

    Bonjour,

    Je travaille actuellement sur un projet intégrant un GPS et un microcontroleur.
    Mon µC est un pic 16F887. J'ai à disposition MPLAB IDE v8.36.
    Tout d'abord, je désire programmer en C, alors je voulais savoir si avec ce que j'ai c'était bon.
    Ensuite j'ai une partie de code en assembleur, j'aurais aimé savoir si il était possible de l'intégrer à un un fichier main en C.
    Bien que je me débrouille en ASM, je n'ai que très peu de notions en C et je compte m'y mettre sérieusement si cela s'avère être intéressant. Le problème est que je dois manipuler des fonctions trigonométriques et il me parait plus simple de s'en occuper avec du C.

    Merci d'avance pour votre aide.

    -----

  2. #2
    Murayama

    Re : C/asm

    Bonjour!

    Il est toujours possible d'intégrer de l'assembleur dans du C.
    Mais la façon de faire dépend du compilateur. Pour certains, c'est
    comme ça:

    __asm {
    instruction asm 1
    instruction asm 2
    etc…
    }

    ou quelque chose dans le genre.

    Pour les fonctions trigonométriques, par contre, il est clair qu'un
    compilateur C en général peut créer le code qui la calcule, mais
    par contre, est-ce bien nécessaire?
    Je m'explique: en principe, un microcontrôleur est fait pour traiter
    des signaux en temps réel. La précision des convertisseurs est
    de l'ordre de 12 bits, ce qui fait qu'il est inutile d'avoir une précision
    extrême pour les fonctions circulaires. Dans ce cas, on peut très
    bien utiliser une table. De plus, l'accès à une table est immédiat
    alors que le calcul d'un sinus ne l'est pas.

    En déclarant par exemple:
    const int16 SINUS[] = {
    [… liste des valeurs ...]
    }
    sur 1/4 de période, vous pouvez avoir tous les sin et cos par
    symétrie ou déphasage.

    Pascal

  3. #3
    invite3f2bb8c8

    Re : C/asm

    Bonjour et merci de ta réponse Pascal,

    Donc si je comprends bien étant donné que j'utiliserai le même compilateur si possible (MPLAB), il ne devrait pas y avoir de soucis. Je me renseignerai à ce sujet.

    En ce qui concerne ma volonté de passer au C, j'ai cité comme problème uniquement les fonctions trigonométriques, et j'avais déjà pensé à faire un tableau, idée qui ne m'avait pas semblé absurde ^^. Mais mon projet nécessite les calculs de l'heure du coucher et du lever du soleil, qui sont des calculs conséquents. En effets ils intègrent non seulement les fonctions trigo, mais également la fonction racine, des nombres à virgules, des multiplications et divisions par des nombres importants. J'ai quelques idées concernant chacun de ses "problèmes" mais rien de concret. Comme je le disais, je me débrouille, mais ne suis malheureusement pas non plus un as de la programmation... Le C me permettrait de palier à tout ça directement.

    Je ne sais pas si c'est le bon choix mais si j'arrivais à intégrer mon bout de code actuellement en ASM (celui qui gère la réception des trames NMEA du GPS et les interruptions), je n'aurai plus qu'à mettre cette fonction pour les horaires en C et voilà.

    Christophe

  4. #4
    invite3f2bb8c8

    Re : C/asm

    Rebonjour,

    Après avoir naviguer quelque peu sur le net et fait des essais, j'ai commencé par juste faire un vulgaire programme en C qui consiste à "allumer une led". Programme qui ma foie n'est pas très difficile à réaliser, et qui fonctionne quand je le fais en ASM ^^ En revanche, quand je le fais en C, j'arrive à le compiler via MPLAB et CC5X et il me sort bien un fichier .hex mais je n'arrive pas à le mettre dans le PIC que j'utilise (qui n'a pas changé). Serait-ce la faute du Pickit2 que j'utilise également?
    Par ailleurs j'aurai aimé savoir si il était préférable d'utiliser CC5X ou HI-TECH C comme compilateur? Toujours dans l'optique de pouvoir y intégrer mon bout de programme en asm. HI-TECH C est fournit avec MPLAB donc je me dis que c'est peut être mieux, mais j'ai trouvé un bon tutoriel pour CC5X alors je ne sais pas.

    Merci de votre aide.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. ASM en C
    Par invited5705882 dans le forum Électronique
    Réponses: 2
    Dernier message: 28/04/2010, 13h03
  2. ASM to C
    Par invite8f6d9289 dans le forum Électronique
    Réponses: 6
    Dernier message: 20/04/2010, 23h14
  3. asm pic16f631
    Par invite06a0fcdc dans le forum Électronique
    Réponses: 16
    Dernier message: 30/11/2009, 10h45
  4. Convertisseur Asm => C
    Par inviteec0556c7 dans le forum Électronique
    Réponses: 8
    Dernier message: 29/06/2009, 00h42
  5. .C et .ASM
    Par invitec1317d72 dans le forum Électronique
    Réponses: 4
    Dernier message: 07/05/2008, 14h05
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...