[Programmation] Faire un map(), en langage .c (MPLABX)
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Faire un map(), en langage .c (MPLABX)



  1. #1
    tomjcb

    Faire un map(), en langage .c (MPLABX)


    ------

    Bonjour à tous!

    Aujourd'hui, j'aurais encore une question de programmation à vous poser ... (je suis toujours aussi peu compétent en .c ..)

    Ce que je voudrais faire, comme dit dans l'intitulé, c'est faire comme la commande map() de Arduino.

    C'est-à-dire, changer l'échelle, par exemple, au lieu d'aller de 0 à 1023, on ira de 0 à 5.. (je ne sais pas du tout si je suis clair)

    Mon cas d'utilisation : En fait, j'utilise un capteur de courant, avec un shunt, et le 0 est centré sur 2,5V, du coup ce que je veux, c'est faire en sorte qu'au lieu d'aller de 0 à 1023, je veux faire -512 jusqu'à 0 puis 0 jusqu'à 512.

    donc en gros transformer : [0---------512--------1023] en [-512----------0--------512]


    Je pense être vraiment très flou dans mes explications mais j'ai du mal à exposer le problème ..

    Si quelqu'un me comprend et/ou a des pistes, je suis preneur.

    Vous en remerciant d'avance, bien à vous, Tom.

    -----
    Je ne pense pas qu'il y est de bonnes ou de mauvaises situations...

  2. #2
    DAUDET78

    Re : Faire un map(), en langage .c (MPLABX)

    Tu retranches 512 à la valeur lu sur l'ADC ! programme de CM2 .....
    J'aime pas le Grec

  3. #3
    naru2to

    Re : Faire un map(), en langage .c (MPLABX)

    Bonjour,
    Il faut aborder le problème du point de vue mathématique avant de vouloir le coder!
    Ce que tu veux faire, est simple, il suffit de prendre ta valeur 0 à 1023 et d'enlever son offset 1/2, soit 512. De plus en signé la plage est de -512 à +511
    Entrée = 0, sortie = 0-512 = -512
    Entrée = 512, sortie = 512-512 = 0
    Entrée = 1023, sortie = 1023-512 = 511

    Pour avoir des échelons, par exemple 5, il faut diviser ton résultat par 1023/5=204, soit sortie = entrée/204
    Entrée = [0 - 203], sortie = 0
    Entrée = [204 - 407], sortie = 1
    etc.

  4. #4
    tomjcb

    Re : Faire un map(), en langage .c (MPLABX)

    Oh mon dieu je me sens terriblement bête ...
    Je travaille sur le projet depuis maintenant 1 mois et demi, je me prends tellement la tête pour des petites choses que je ne vois même pas les solutions aussi simple comme celle la ...
    Je devrais retourner en CM2 effectivement ahah

    Mais bon c'est toujours bien d'avoir un oeil nouveau sur le chose, je vous remercie en tout cas !
    Je ne pense pas qu'il y est de bonnes ou de mauvaises situations...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. que faire après une licence de sciences du langage??
    Par invite36411da6 dans le forum Orientation après le BAC
    Réponses: 2
    Dernier message: 14/03/2013, 15h27
  2. [Langage C ] j'arrive pas à faire un truc....
    Par invite4e469e29 dans le forum Programmation et langages, Algorithmique
    Réponses: 21
    Dernier message: 01/01/2012, 14h40
  3. Peut ton faire un virus avec le langage C?
    Par dalida1111 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 10
    Dernier message: 29/12/2011, 09h05
  4. comment faire pour MPLAB+LANGAGE C ?
    Par just-a-man-but dans le forum Électronique
    Réponses: 7
    Dernier message: 12/10/2011, 22h46
  5. faire un auto iris en langage c
    Par inviteb1dc4efc dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 29/02/2008, 16h43
Découvrez nos comparatifs produits sur l'informatique et les technologies.