Bonjour tout le monde, je ne voulais pas ressortir un vieux topic alors je re-poste.
Je dois faire la même chose que là http://ift.tt/1ea86tC (sauf que je suis pas sur PIC mais bon ça on s'en fiche).
donc d'après la discussion, apparemment il faudrait faire qq du genre
U16 XAccel;
XAccel = ( (U16) (spi_read_byte() & 0x3F ) ) << 8;
XAccel |= spi_read_byte();
Merci à Micka_ch pour ça.
Seulement, il y a quelquechose que je ne comprends pas: pourquoi à la fin XAccel nn'est pas décalé? (car on a un nombre sur 2 octets alors que l'on ne reçoit que 14 bits), on va pas avoir une valeur 4 fois trop grande?
voici les données du précédent exemple: Pièce jointe 241986
De plus je ne comprend pas pourquoi il faut faire &0x3F, ça modifie l'angle si on a un 1 un MSB, nan?
ou alors je me suis planté dans mon raisonnement ^^
bref, si quelqu'un pouvait éclairer ma lanterne :)
Je dois faire la même chose que là http://ift.tt/1ea86tC (sauf que je suis pas sur PIC mais bon ça on s'en fiche).
donc d'après la discussion, apparemment il faudrait faire qq du genre
Citation:
U16 XAccel;
XAccel = ( (U16) (spi_read_byte() & 0x3F ) ) << 8;
XAccel |= spi_read_byte();
Merci à Micka_ch pour ça.
Seulement, il y a quelquechose que je ne comprends pas: pourquoi à la fin XAccel nn'est pas décalé? (car on a un nombre sur 2 octets alors que l'on ne reçoit que 14 bits), on va pas avoir une valeur 4 fois trop grande?
voici les données du précédent exemple: Pièce jointe 241986
De plus je ne comprend pas pourquoi il faut faire &0x3F, ça modifie l'angle si on a un 1 un MSB, nan?
ou alors je me suis planté dans mon raisonnement ^^
bref, si quelqu'un pouvait éclairer ma lanterne :)
via Forum FS Generation http://ift.tt/1gZt2b3
Aucun commentaire:
Enregistrer un commentaire