Pas de problème.![]()
Attention, il faut caster en double à cause des dépassements de capacité pour la multiplication des entiers non signés.
Pas de problème.![]()
Attention, il faut caster en double à cause des dépassements de capacité pour la multiplication des entiers non signés.
Bonjour,
Je prends le sujet en cours de route et j'ai balayé assez rapidement les autres post donc désolé si je fait des "redites".
Mais en gros, tu as d'un coté 32 bits qui sont le résultats de traitements et qui vont correspondre à un niveau de tension. Ces 32 bits sont un entier non signé.
Ce niveau de tension est généré par un CNA qui prend en entrée 12 bits.
Donc la valeur en entrée qui génèrera la tension la plus proche de la valeur désirée correspond aux 12 bits de poids forts (ce raisonnement ne sera plus bon pour le cas de float).
En gros :
Alors le décalage à droite de 20 bits (j'espère que ça existe dans ton pseudo C) fera parfaitement l'affaire : c'est rapide, et tu ne pourras pas faire mieux au niveau qualité de conversion.
On va dire que je chipote, mais on perd moins d'information avec ma règle de trois qu'avec le décalage de 20, mais c'est plus long en temps de calcul c'est sûr.
Je viens de faire le test avec val = 0xF4037B56 :
avec mon calcul => 79F
avec le décalage => 740
La différence n'est pas négligeable il me semble.
[edit]
Je corrige mon post précédent, en me réveillant un peu , le décalage de 20 ou mon calcul (avec FFF sur 12 bits et non 7FF qui n'en prend que 11) donne presque exactement le même résultat.
[/edit]
effectivement. J'avais pas tout lu.![]()
Je pense qu'en plus d'être plus précise, cette méthode est tout simplement exacte. Le décalage ne donnant qu'un ordre de grandeur.
Tu chipote!Envoyé par Trap D
Mais le but est bien de perdre le moins de donnée possible même au détriment du temps de calcul.
Tout à fait et ta méthode, Trap D, répond tout à fait à ce que je voulais. Je n'ai pas de problème de temps de calcul dans cette application.Envoyé par gege2061
Merci pour votre aide !
Bouton résolu stp
j'ai mis ça dans le sujet de mon message ( [résolu]) ... Mais il y a un bouton spécifique ?
==> j'ai trouvé !
Envoyé par netpit
![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager