Go Down

Topic: Optimiser un code de commande série (Visca) (Read 1 time) previous topic - next topic

barbudor

et surtout
Code: [Select]
& 15
au lieu de
Code: [Select]
% 16

Au cas ou le compil soit un peu benet...
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

reno-

J'ai remplacé les % 16 par des & 15, et cela fonctionne toujours, bien que cela fonctionnait déjà avec les % 16.
C'est plus sur si je comprends bien.

merci,

renaud
http://rubiano.fr - http://didascalie.net - http://tapemovie.org

skywodd

J'avais zappé le modulo 16 tient ... effectivement un modulo d'une puissance de 2 équivaut à un ET logique de la valeur du modulo - 1.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

barbudor

Le modulo est une opération arithmétique qui implique une division partielle afin de calculer le reste de la division.
En gros A % B calcule A - ENT(A/B)*B
Le & 15 est une opération logique effectuée en 1 seule instruction par le processeur.

Le cas général de calcul du modulo est très consommateur de CPU surtout sur un micro qui n'a pas d'unité de calcul avancée (le calcul d'une division est par principe itératif et ne peut pas être cablé en 1 seul cycle dans un processeur)

A moins que le compilo sache reconnaitre le modulo d'une puissance de 2, utiliser "& (2^n -1)" au lieu de "% 2^n" est bien plus efficace en vitesse et nombre d'instructions
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Je suis en train de contrôler une caméra VISCA, mais j'ai du mal à établir la communication.

Pourriez-vous publier votre programme dans son ensemble?

S'il vous plaît pardonnez-moi si c'est une mauvaise traduction - Google Translate ....

Go Up