[PIC ASM] fonction 1/x
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 34

[PIC ASM] fonction 1/x



  1. #1
    Qristoff
    Animateur Électronique

    [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...!

  2. #2
    invite29971eb1

    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. #3
    invitea613d208

    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. #4
    Seb.26

    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. A voir en vidéo sur Futura
  6. #5
    Qristoff
    Animateur Électronique

    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...!

  7. #6
    invite29971eb1

    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

  8. #7
    Qristoff
    Animateur Électronique

    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...!

  9. #8
    invitee5da1686

    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 ...

  10. #9
    Qristoff
    Animateur Électronique

    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...!

  11. #10
    invite29971eb1

    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

  12. #11
    RISC

    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+

  13. #12
    invite092cb13c

    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

  14. #13
    invite29971eb1

    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

  15. #14
    invitee5da1686

    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

  16. #15
    invitee5da1686

    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

  17. #16
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    Salut à tous,
    merci à tous pour vos solutions.
    En fait ce n'est pas pour piloter un brushless plutôt utiliser un brushless en génératrice/frein et récupérer l'info vitesse sur les capteurs hall, mais cela revient au même.
    Je trouve l'idée de MorpheusPic trés séduisante et simple pour la résolution que j'escompte.
    En reprenant son idée: j'ai 3 pôles moteur, donc 3 pulses/tr. soit 1tr/20s. En mesurant tout les 200ms, j'aurais donc une résolution de 100rpm, qui peut être descendue à 50 rpm en moyennant deux acquisitions successives.
    Allez hop, y a plus qu'à....
    Tout existe, il suffit de le trouver...!

  18. #17
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    Je me trouve face à un autre probléme...
    Je voudrais utiliser TMR0 pour compter les impulsions sur T0CKI mais Mplab génére l'erreur:
    IOPORT-W0001: Pin(s) (0x04) on PORTA can not be stimulated due to being controlled by the A/D converter
    et ceci pour toutes les entrées AN (alors que j'ai désactivé l'ADC) et je ne vois pas non plus le signal bouger dans la fenetre Analyseur si c'est une entrée analogique....
    Est ce normal que l'on ne puisse pas utiliser ces entrées ou il y a t-il une manip à faire ?
    Tout existe, il suffit de le trouver...!

  19. #18
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    C'est bon, j'ai trouvé....
    il faut mettre ANSEL et ANSELH à 0 même si on n'utilise pas l'ADC
    Tout existe, il suffit de le trouver...!

  20. #19
    invite29971eb1

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par Qristoff Voir le message
    C'est bon, j'ai trouvé....
    il faut mettre ANSEL et ANSELH à 0 même si on n'utilise pas l'ADC
    C'est l'une des raisons pour lesquelles je déconseille les PICs. Même si tu ne vas jamais utiliser un périphérique, tu es obligé de l'initialiser donc obligation de connaître des registres dont tu n'as aucun besoin et obligation de tout désactiver....Imagine si toutes les applis s'ouvraient quand tu démarres ton PC....c'est ridicule, non?

  21. #20
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    Salut,
    C'est pas le pic qui posait probléme mais le simulateur Mplab qui ne s'y retrouvais pas...
    Tout existe, il suffit de le trouver...!

  22. #21
    invite29971eb1

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par Qristoff Voir le message
    Salut,
    C'est pas le pic qui posait probléme mais le simulateur Mplab qui ne s'y retrouvais pas...
    MPlab ne fait que retranscrire ton programme, et si le simulateur est pas trop mal foutu (faut l'espérer puisqu'il vient du constructeur même), il reproduit le comportement du PIC

  23. #22
    invitee5da1686

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par ftorama Voir le message
    donc obligation de connaître des registres dont tu n'as aucun besoin
    ben c'est normal de devoir connaitre ton uc et si tu en aucun besoin c'est que tu sait pas utiliser un UC

  24. #23
    inviteeb160de1

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par ftorama Voir le message
    C'est l'une des raisons pour lesquelles je déconseille les PICs. Même si tu ne vas jamais utiliser un périphérique, tu es obligé de l'initialiser donc obligation de connaître des registres dont tu n'as aucun besoin et obligation de tout désactiver....Imagine si toutes les applis s'ouvraient quand tu démarres ton PC....c'est ridicule, non?
    Le moindre détail te sert d'argument pour enterrer toute une famille ! Tout détail ressemble alors à une tache pénible, harassante !
    Car, c'est vrai, lire les encadrés gris d'une datasheet demande un effort...gigantesque...
    Là, en l'occurence, on ne parle pas d'un périphérique à désactiver, mais du controle d'un pad I/O. C'est différent...Ta comparaison avec des applications PC n'a donc rien à voir...
    Il y a probablement une raison logique (consommation ou besoin lié à d'autres applications) qui font que cette solution a été prise...

    Aurélien

  25. #24
    invitee5da1686

    Re : [PIC ASM] fonction 1/x

    moi je propose de se cotiser et d'envoyer a ftorama un beau kit de developement MICROCHIP !

    en esperant qui finise pas a la poubelle en ayant atrocement soufert lol

    moi je dit que rien que pour tes connaissances personneles tu devrais t'interreser au pic au lieu de les critiquer dont on ne sait pas pourkoi.

  26. #25
    invite29971eb1

    Re : [PIC ASM] fonction 1/x

    Citation Envoyé par MorpheusPic Voir le message
    moi je propose de se cotiser et d'envoyer a ftorama un beau kit de developement MICROCHIP !

    en esperant qui finise pas a la poubelle en ayant atrocement soufert lol

    moi je dit que rien que pour tes connaissances personneles tu devrais t'interreser au pic au lieu de les critiquer dont on ne sait pas pourkoi.
    y'a des risques effectivement
    J'ai une poignée de 16F877 qui pourrissent au fond de ma cave, montés sur des cartes qui feraient de très bonnes cartes de dev avec un programmateur....mais qu'est-ce que je ferais de ça?

    Les raisons je les donne régulièrement, mais la garde prétorienne intervient aussitôt...et encore c'est calme ici.

  27. #26
    invitea613d208

    Re : [PIC ASM] fonction 1/x

    Je tiens juste (sans vouloir faire plemique) qu'une fois qu'on a gouté à de vrai micro-controleurs (Ex : Freescale) les PICs perdent de leur charme. Cela dit il reste interessant

  28. #27
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    Je tiens juste (sans vouloir faire plemique) qu'une fois qu'on a gouté à de vrai micro-controleurs (Ex : Freescale)
    Peux tu me dire suivant quels critéres objectifs et factuels tu estimes qu'un µC est un vrai micro-controleur ?
    Tout existe, il suffit de le trouver...!

  29. #28
    invitea613d208

    Re : [PIC ASM] fonction 1/x

    C'est une façon de dire. Mais les criteres de comparaison sont pour moi :

    - Diversité dans gamme de micro-contrôleurs
    - Rapport prix/performance ou prix/capacités
    - Richesses des compilateurs disponibles
    - IDE de dev fourni par le fabricant
    - Complexité de mise en oeuvre des fonctions du PIC

    Voici quelques uns des critères

    Et je citai les Freescale, qui sont des micro-contrôleurs performants, avec un excellent rapport qualité prix, une hotline compétente, une IDE de très bonne qualité.

    Les Pics sont aussi des micro-controleurs assez interessants, mais je suis personnelement faché avec leur IDE hors d'âge, instable au possible, et peu pratique. Les datasheets sont egalements parfois défaillantes. et pour moi le compilateur C microship pour etre mieux (raison pour laquelle je me sert de CCS)

    Cette explication te convient - elle ? (Encore une fois je n'était pas la pour realimenter le débat)

    Mais disons que pour moi le PIC c

  30. #29
    Qristoff
    Animateur Électronique

    Re : [PIC ASM] fonction 1/x

    Enfin des arguments...
    J'utilise les µC qu'à des fins personnelles et de loisir. Je suis plus électronicien qu'informaticien et je ne maitrise que peu de langages.
    Dans ma vie professionnelle et pour les cartes que l'on devellope, le choix est souvent orienté Freescale mais peut être plus vis à vis des choix société ou pour l'expérience et le background.
    Il faut aussi comparer les couts et disponibilités des composants chez le revendeur lambda et le prix d'un atelier de dévellopement loisir ou pro, la différence peut se trouver là !
    Petite étude intéressante à faire.
    Si Microchip a séduit une clientèle avec ses produits, c'est qu'il y avait une réponse aux attentes !
    Tout existe, il suffit de le trouver...!

  31. #30
    invitea613d208

    Re : [PIC ASM] fonction 1/x

    L'avantage d'un PIC c'est sa communauté et son implantation dans le marché actuel, surtout chez les particuliers. Je m'en sert personnellement pour les "petites choses" si je puis dire (En ce moment j'utilise un pic sur une carte pour gérer une détection de mouvement) mais j'ai eu l'occasion de découvrir Freescale en travaillant sur une carte de programmation IN-situ et la j'ai vraiment été surpris par le composant sur beaucoup de points. Mais le prix a payer est par exemple dans le temps de prise en main nécessaire.

    Il est vrai qu'une petite étude serai intéressante

    Je suis plus électronicien qu'informaticien et je ne maitrise que peu de langages.
    L'important est d'en maîtriser au moins un . Un électronicien incapable de programmer un minimum est un électronicien au chômage dans pas mal de cas (Et je suis effaré de voir dans le lycée ou je suis du niveau médiocre des autres étudiants en programmation)

    Pour ma part je suis plutôt électronicien "nouvelle génération" et j'utilise les micro contrôleurs a toutes les sauces, Enfin je pourrai me dire électronicien des mon BTS obtenu ce mois de Juin

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. PIC 16F877 en ASM
    Par invite814175e4 dans le forum Électronique
    Réponses: 0
    Dernier message: 07/12/2009, 17h04
  2. Temporisation en asm pour Pic
    Par invite61e27b7d dans le forum Électronique
    Réponses: 3
    Dernier message: 09/06/2007, 23h31
  3. [ Programmation PIC 16F84 (asm) ]
    Par invite49af6c4e dans le forum Électronique
    Réponses: 1
    Dernier message: 23/10/2003, 20h55
  4. Programmation ASM d'un PIC
    Par invite67d96d45 dans le forum Électronique
    Réponses: 4
    Dernier message: 04/06/2003, 12h09
  5. PIC 16f877, source ASM !
    Par NYghost dans le forum Électronique
    Réponses: 5
    Dernier message: 02/04/2003, 08h05
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...