Bonjour,
J'utilise un CAN 32bits et je dois faire une conversion du résultat en complément à 2 pour me ramener à la tension mesurée.
D'après la doc constructeur du CAN ils mettent un petit exemple en langage C mais il utilise un opérateur que je n'ais jusqu'à aujourd'hui jamais utilisé: ^=
Ainsi, je récupère la valeur brute je la stock dans une variable noté X et voici ce que la doc me dit:
Donc ma question est donc comment fonctionne ce ^= , je pense qu'il y a de soustraction la dedans qui prend en compte le signe mais c'est pas très claire...Code:X ^= 0x80000000; // Invert MSB, result is 2’s complement voltage = (float) X; // convert to float voltage = voltage * 5.0 / 2147483648.0;// Multiply by Vref, divide by 2^31
-----