Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Coder une grosse division
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Hello tous,
Je bute sur mon projet affichage de fréquence AD9850, il me faut une division 32/16 plus rapide que celle que j'utilise pour l'instant, je l'ai codée à coup de marteau et elle prend beaucoup de temps machine. J'ai passé la journée à me tordre le cerveau pour trouver un algo de division 32/16 bits plus propre mais je coince pour l'instant.
Celle que j'utilise part du principe qu'une division n'est qu'une succession de soustractions, donc je soustrais le diviseur au dividende en incrémentant le quotient jusqu'à ce que le reste soit inférieur au diviseur. Ca marche mais c'est lent.
Je comptais faire un algorithme en suivant la méthode qu'on nous enseigne l'école primaire mais çà ne colle pas dés qu'on a plus d'un octet dans le diviseur.
Je continue à persister, si je deviens fou ne vous étonnez pas.
Si qqun à une idée...
Je bute sur mon projet affichage de fréquence AD9850, il me faut une division 32/16 plus rapide que celle que j'utilise pour l'instant, je l'ai codée à coup de marteau et elle prend beaucoup de temps machine. J'ai passé la journée à me tordre le cerveau pour trouver un algo de division 32/16 bits plus propre mais je coince pour l'instant.
Celle que j'utilise part du principe qu'une division n'est qu'une succession de soustractions, donc je soustrais le diviseur au dividende en incrémentant le quotient jusqu'à ce que le reste soit inférieur au diviseur. Ca marche mais c'est lent.
Je comptais faire un algorithme en suivant la méthode qu'on nous enseigne l'école primaire mais çà ne colle pas dés qu'on a plus d'un octet dans le diviseur.
Je continue à persister, si je deviens fou ne vous étonnez pas.
Si qqun à une idée...
Coder une grosse division
Tu as vu celle-ci ? http://www.piclist.com/techref/microchi ... by16ph.htm
Sinon passe à un pic 16 bits, il fera la division pour toi en 150ns.
Sinon passe à un pic 16 bits, il fera la division pour toi en 150ns.
Coder une grosse division
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Pour contourner le pbm je suis en train d'utiliser celle de Peter G. Harrison, mais c'est frustrant parce que ce n'est pas moi qui l'ai codée
Bien plus rapide que la mienne.
J'avais vu celle que tu décris aussi mais il y a des trucs qui me gênent comme les movfw, surement faute de frappe pour des movwf,
skpnc, skpnc, skpz.
Les 16bits oui ce serait bien, j'ai prévu de m'y intéresser mais pas trop de doc, faut franchir le pas.
Bien plus rapide que la mienne.
J'avais vu celle que tu décris aussi mais il y a des trucs qui me gênent comme les movfw, surement faute de frappe pour des movwf,
skpnc, skpnc, skpz.
Les 16bits oui ce serait bien, j'ai prévu de m'y intéresser mais pas trop de doc, faut franchir le pas.
Coder une grosse division
Bonjour
Vu le nombre de fainéants quidams qui ont traîné sur PicList, il ne doit pas y avoir beaucoup d'erreurs.
Ce sont des macros, si on les cherche elles figurent en dur dans l'exe de l'assembleur MPASMWIN.EXE
Elles ont l'air de marcher que pour les 16F, pas pour les 18F.
Soit tu les enlèves en modifiant les lignes, par exemple "movfw var" c'est "movf var,W"
Soit tu te refais des macros 18F.
https://www.microchip.com/forums/FindPost/763523
Vu le nombre de fainéants quidams qui ont traîné sur PicList, il ne doit pas y avoir beaucoup d'erreurs.
Ce sont des macros, si on les cherche elles figurent en dur dans l'exe de l'assembleur MPASMWIN.EXE
Elles ont l'air de marcher que pour les 16F, pas pour les 18F.
Soit tu les enlèves en modifiant les lignes, par exemple "movfw var" c'est "movf var,W"
Soit tu te refais des macros 18F.
Code : Tout sélectionner
movfw macro var
movf var,W
endm
https://www.microchip.com/forums/FindPost/763523
Coder une grosse division
Bonjour, j'avais trouvé le fichier ci-joint sur le net, mais je n'ai pas gardé le lien. ça peut peut-être aider. Je n'ai pas testé les routines contenues dans le fichier.
ça ne correspond peut-être pas à l'idée de tout se faire soi-même, mais pour ma part, je ne saurai pas tout faire moi-même, j'ai trop de limite !
ça ne correspond peut-être pas à l'idée de tout se faire soi-même, mais pour ma part, je ne saurai pas tout faire moi-même, j'ai trop de limite !
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Coder une grosse division
- Claudius
Passioné- Messages : 260
- Âge : 69
- Enregistré en : septembre 2015
- Localisation : ELANCOURT (78 - YVELINES)
- Contact :
Bonjour,
Fichier "math.asm" extrait du zip venant en fait du projet que je cite régulièrement; à savoir:
Multibyte Arithmetic Assembly Library for PIC Microcontrollers
À noter que le code généré n'est pas optimisé comme celui donné par satinas mais ce qui est sûr, c'est qu'il est correct d'un point de vue algorithmique quelles que soient la taille des opérandes et les opérations choisies ;-)
Fichier "math.asm" extrait du zip venant en fait du projet que je cite régulièrement; à savoir:
Multibyte Arithmetic Assembly Library for PIC Microcontrollers
À noter que le code généré n'est pas optimisé comme celui donné par satinas mais ce qui est sûr, c'est qu'il est correct d'un point de vue algorithmique quelles que soient la taille des opérandes et les opérations choisies ;-)
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Coder une grosse division
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bonsoir tous,
Merci pour les réponses, j'ai mis tout çà en lieu sur. Mon projet tourne maintenant correctement avec une division empruntée, reste à faire la plaque imprimée. Quand il sera terminé je me mettrais à cogiter sur une division home-made même si elle ne sera pas au niveau de tous ces ténors du codage, c'est juste pour le plaisir.
Merci pour les réponses, j'ai mis tout çà en lieu sur. Mon projet tourne maintenant correctement avec une division empruntée, reste à faire la plaque imprimée. Quand il sera terminé je me mettrais à cogiter sur une division home-made même si elle ne sera pas au niveau de tous ces ténors du codage, c'est juste pour le plaisir.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 41 invités