Pages: 1 [2]   Go Down
Author Topic: Optimiser un code de commande série (Visca)  (Read 1514 times)
0 Members and 1 Guest are viewing this topic.
Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

et surtout
Code:
& 15
au lieu de
Code:
% 16

Au cas ou le compil soit un peu benet...
Logged

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 ?

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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 ?

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: 1 [2]   Go Up
Jump to: