Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 15 sur 34

[PIC ASM] fonction 1/x

  1. Qristoff

    Date d'inscription
    janvier 2009
    Localisation
    Drôme des collines
    Âge
    48
    Messages
    4 758

    [PIC ASM] fonction 1/x

    Salut à tous,
    J'utilise un 16F690 pour faire l'acquisition via ECCP de la vitesse d'un moteur en utilisant les capteurs du brushless 3 pôles.
    J'obtiens bien ma mesure de la période en 16 bits (simu Mplab) mais j'aurais besoin de la convertir pour affichage en rpm. Il faut donc que j'effectue l'opération rpm=1/T x 1/3 x 1e6.
    J'ai trouvé un site pour m'aider pour les formules http://www.piclist.com/techref/microchip/math/basic.htm
    On peut le faire en faisant une division (333 333/T) soit une division 24bits par 16 bits mais il y a t-il une autre astuce ou une méthode plus simple ?
    Tout existe, il suffit de le trouver...!
     


    • Publicité



  2. ftorama

    Date d'inscription
    mars 2010
    Localisation
    Nanterre
    Âge
    36
    Messages
    3 421

    Re : [PIC ASM] fonction 1/x

    Oui d'arrêter de se borner à utiliser de l'assembleur, là ou du C serait bien plus adapté. Quelle idée de voir implémenter ça en assembleur en 2011, surtout sur un circuit sans fonctions arithmétiques...
     

  3. zhal

    Date d'inscription
    juin 2010
    Messages
    907

    Re : [PIC ASM] fonction 1/x

    Je suis d'accord avec ftorama (meme si des fois l'assembleur reste nécessaire pour des applications critiques avec le temps comme paramètre essentiel)

    Sache que tu peux integrer du code C dans ton code assembleur, et le compilateur se chargera de la sauce finale.

    Tu perdra beaucoup moins de temps
     

  4. Seb.26

    Date d'inscription
    juin 2005
    Âge
    36
    Messages
    1 741

    Re : [PIC ASM] fonction 1/x

    Si ton besoin de précision le permet, tu peux essayer de faire une LUT pour l'octet de poids fort de tes 16b et ensuite faire une interpolation linéaire pour l'octet de poids faible ...

    ça flaire bon la bidouille, mais l'erreur ne devrait pas être énorme non plus ... un petit tableau excell pour simuler tout ça, et tu vois ce que ça donne ...

    PS: évidement, fais ta LUT sur la plage qui t'intéresse pour économiser en taille de code ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>
     

  5. Qristoff

    Date d'inscription
    janvier 2009
    Localisation
    Drôme des collines
    Âge
    48
    Messages
    4 758

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par ftorama Voir le message
    Oui d'arrêter de se borner à utiliser de l'assembleur, là ou du C serait bien plus adapté. Quelle idée de voir implémenter ça en assembleur en 2011, surtout sur un circuit sans fonctions arithmétiques...
    Cela fait bien longtemps que j'ai compris que les pics et l'assembleur ne sont pas ta tasse de thé. Mais j'ai du mal à assimiler personnellement le C après de multiples expériences et je trouve qu'en tant qu'électronicien que l'assembleur permet une meilleure gestion du temps réel comme zhal l'a fait remarqué.
    Je veux juste savoir si je suis sur la bonne piste avec une division 24/16 bits ou s'il y a un raccourci que vous pourriez m'apprendre !
    Tout existe, il suffit de le trouver...!
     


    • Publicité



  6. ftorama

    Date d'inscription
    mars 2010
    Localisation
    Nanterre
    Âge
    36
    Messages
    3 421

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par Qristoff Voir le message
    Cela fait bien longtemps que j'ai compris que les pics et l'assembleur ne sont pas ta tasse de thé. Mais j'ai du mal à assimiler personnellement le C après de multiples expériences et je trouve qu'en tant qu'électronicien que l'assembleur permet une meilleure gestion du temps réel comme zhal l'a fait remarqué.
    Je veux juste savoir si je suis sur la bonne piste avec une division 24/16 bits ou s'il y a un raccourci que vous pourriez m'apprendre !
    J'aurais eu la même réaction sur un autre micro, je te rassure...

    De nos jours, l'assembleur c'est bien à petites doses...pour des timings précis justement, mais ça s'intègre dans le C. Je ne suis pas fan de ce langage non plus (j'ai été formé sur Pascal) mais ça aide quand même sacrément
     

  7. Qristoff

    Date d'inscription
    janvier 2009
    Localisation
    Drôme des collines
    Âge
    48
    Messages
    4 758

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par Seb.26 Voir le message
    Si ton besoin de précision le permet, tu peux essayer de faire une LUT pour l'octet de poids fort de tes 16b et ensuite faire une interpolation linéaire pour l'octet de poids faible ...

    ça flaire bon la bidouille, mais l'erreur ne devrait pas être énorme non plus ... un petit tableau excell pour simuler tout ça, et tu vois ce que ça donne ...

    PS: évidement, fais ta LUT sur la plage qui t'intéresse pour économiser en taille de code ...
    J'ai relu ton message plusieurs fois et toujours pareil, pas compris !
    Qu'est ce que signifie LUT ?
    Tout existe, il suffit de le trouver...!
     

  8. MorpheusPic

    Date d'inscription
    août 2008
    Âge
    29
    Messages
    755

    Re : [PIC ASM] fonction 1/x

    salut

    si tu a pas besoin d'un reponse rapide tu peut aussi avec un timer de 1 sec faire un comptage des impulsion ...
    qui serait dailleur plus precis mais plus lent (1 sec de rafraîchissement)

    pour ce qui est de l'assembleur du fait que je lutilise toujour pour les interruption je connais beaucoup mieux le fonctionnement du pic est c'est asser plaisant si il y a pas de gros calculs a faire ...
     

  9. Qristoff

    Date d'inscription
    janvier 2009
    Localisation
    Drôme des collines
    Âge
    48
    Messages
    4 758

    Re : [PIC ASM] fonction 1/x

    Vous n'avez pas d'astuce si je comprends bien...Je vais essayer de voir dans les programmes de fréquencemétre qui convertissent une période en Hz pour l'affichage
    Tout existe, il suffit de le trouver...!
     

  10. ftorama

    Date d'inscription
    mars 2010
    Localisation
    Nanterre
    Âge
    36
    Messages
    3 421

    Re : [PIC ASM] fonction 1/x

    Comme l'a dit Morpheuspic...en mesurant directement la fréquence.

    Comme tu es sans doutes à plusieurs milliers de rpm, tu peux mesurer sur un temps assez court
     

  11. RISC

    Date d'inscription
    novembre 2006
    Messages
    2 855

    Re : [PIC ASM] fonction 1/x

    Salut Qristoff,

    Il existe une note d'application (AN1305) pour le PIC16F1937 qui permet apparemment de controler un moteur brushless sensorless 3 phases de 100 à 90.000 tours ;=)

    a+
    Ma marotte ? les microcontrôleurs...mais pas tous ;=)
     

  12. gedonet

    Date d'inscription
    février 2004
    Messages
    666

    Re : [PIC ASM] fonction 1/x

    Bonjour
    Pour la LUT, il me semble que Seb.26 veut parler de Look-Up Table, un tableau si tu preferres, c'est ultra rapide, une dizaine de cycle.
    Pour les operations mathematiques, il y a la note d'application AN256 chez Microchip avec des routines pour le 24/16. Il faut reconnaitre qu'elle n'est pas des plus simple à utiliser.
    Ensuite il existe des astuces pour optimiser des operations avec une constante, voir http://www.golovchenko.org/cgi-bin/constdivmul ou http://www.piclist.com/techref/picli...onstdivmul.htm sur le site de Bigonoff il y a un exemple.
    Gilles
     

  13. ftorama

    Date d'inscription
    mars 2010
    Localisation
    Nanterre
    Âge
    36
    Messages
    3 421

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par RISC Voir le message
    Salut Qristoff,

    Il existe une note d'application (AN1305) pour le PIC16F1937 qui permet apparemment de controler un moteur brushless sensorless 3 phases de 100 à 90.000 tours ;=)

    a+
    et ton lien apporte quoi?

    Les sources sont en C et la question pose justement sur une opération en assembleur...à part faire encore de la pub pour Microchip, ton intervention ne sert à rien
     

  14. MorpheusPic

    Date d'inscription
    août 2008
    Âge
    29
    Messages
    755

    Re : [PIC ASM] fonction 1/x

    je pense que le comptage d'impulsion sera plus adapté

    genre tu compte les impulsion pendant 250 ms soit 2500 a 10 000 tours minutes

    tu fait 2 decalage a gauche de de tes 2500 soit 10 000 et tu a directe ta vitesse rotation avec un resolution de 4 tours/minutes tout les quart de secondes


    car si tu mesure la periode tu va te retrouver avec des valeurs tres faible et une resolution mediocre de la vitesse
     

  15. MorpheusPic

    Date d'inscription
    août 2008
    Âge
    29
    Messages
    755

    Re : [PIC ASM] fonction 1/x

    correction ... jais caculer pour 10 000 tours /secondes lol



    genre tu compte les impulsion pendant 234 ms soit 39 impulsions a 10 000 tours minutes

    tu fait des decalage a gauche de de tes 39 pour les multiplier par 256 et tu a 9 984, ta vitesse rotation avec un resolution de 256 tours/minutes tout les quart de secondes

    niveau calcul c'est simple
     


    • Publicité




Poursuivez votre recherche :




Sur le même thème :




 

Discussions similaires

  1. PIC 16F877 en ASM
    Par venicetiodelabota dans le forum Électronique
    Réponses: 0
    Dernier message: 07/12/2009, 16h04
  2. Temporisation en asm pour Pic
    Par samux dans le forum Électronique
    Réponses: 3
    Dernier message: 09/06/2007, 22h31
  3. [ Programmation PIC 16F84 (asm) ]
    Par reman dans le forum Électronique
    Réponses: 1
    Dernier message: 23/10/2003, 19h55
  4. Programmation ASM d'un PIC
    Par 14bds75_cb dans le forum Électronique
    Réponses: 4
    Dernier message: 04/06/2003, 11h09
  5. PIC 16f877, source ASM !
    Par NYghost dans le forum Électronique
    Réponses: 5
    Dernier message: 02/04/2003, 07h05