[Débutant] Opérateurs Bitwise (Décalage)
Bonjour à tous,
J'aimerai envoyer le mot binaire 0b00110011, par exemple, sur un port de mon PIC.
Le problème est que mon code est incorrect car à l'oscillo j'obtiens le mot binaire 0b11001100, c'est à dire que j'ai un problème de sens dans le décalage des bits. Mais je ne comprend pas très bien les opérateurs >> et <<.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
void ecrire_octet(char val)
{
int i = 0;
unsigned char temp = 0x00;
for (i=0; i<8; i++) // Ecrit un octet, un bit à la fois
{
//temp = val>>i; // on shifte val i fois vers la droite
temp = val>>i;
temp &= 0x01; // on copie le bit lsb dans temp
ecrire_bit(temp); // on envoie ce bit sur le bus
}
Delay10TCYx(144);//on attend pour le reste de la séquence
} |
Merci.
Bonne journée