Operateurs de décalage

Bonsoir tout le monde.
Je suis en train de suivre attentivement le topic de Octance.
Pour comprendre le problème j'ai regardé la librairie qu'il utilisait.
Dans cette librairie est définie une adresse par défaut (0x3E).
La chose que je n'ai pas compris est pourquoi cette adresse est définie de cette manière

#define LCD_ADDRESS     (0x7c>>1)

Quelqu’un peux m'expliquer?
Merci.

Bonsoir

addr.png
En I2c l'adresse est sur 7 bits et transmise dans un octet dont le bit de poids faible est Lecture/Ecriture

0x3E décalé une fois à gauche (pour laisser la place du bit R/W) donne 0x7C

addr.png

Merci al1fch.
Je peux comprendre le décalage à gauche de l'adresse mais je n'ai toujours pas compris pourquoi la librairie décale à droite.
LCD_ADDRESS vaut 0x7C ou 0x3E?
J'aurais compris si LCD_ADDRESS vaut 0x7C ou 0x3E<<1!

Les doc sont ambiguës
Des fois on trouve l'adresse = 0x3E
D'autres fois on parle de adresse d'écriture = 0x7C et adresse de lecture = 0x7D
En toute rigueur l'adresse devrait être 0x3E. Le standard I²C définit l'adresse sur 7 bit mais comme ils sont alignés à gauche cela entraîne des incompréhensions.

Donc, si j'ai bien compris.
L'auteur de cette librairie raisonne par byte et pour lui l'adresse I2C 0x3E est un byte 01111100 donc 0x7C. c'est peut être pour que soit plus lisible pour lui!

Oui sans doute il prèfère voire les choses comme ça avec les 7 bits calés à gauche.
Il n'est pas le seul car de temps en temps on voit passer cette façon de décrire la chose.

Au bout d'un moment on n'est plus surpris et on se méfie quand il est question d'adresse I2C :wink:

Merci, maintenant je peux aller me coucher serein. :sleeping:

vous aurez plus d'infos ici

vous aurez plus d'infos ici

lu! çà confirme!