Bonjour à tous, j’expérimente les EEPROM, j’ai bien tous compris sauf cette histoire de “bit de poids fort et faible” lors de la fonction write de la bibliothèque Wire.
Voila : Mon code fonctionne bien :
Ceci inscrit le nombre 23 à l’adresse 1 puis je li cette valeur. Je ne comprend pas c’est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #include <Wire.h> #define EEPROM01 0x50 void setup() { Serial.begin(9600); Wire.begin(); } void loop() { ecriture_eeprom(1, EEPROM01, 23); delay(1000); Serial.println(lecture_eeprom(1, EEPROM01)); delay(1000); } int lecture_eeprom(int addr, int eeprom) { int valeur = 12; Wire.beginTransmission(eeprom); Wire.write((addr >> 8) & 0xFF); Wire.write((addr >> 0) & 0xFF); Wire.endTransmission(); Wire.requestFrom(eeprom, 1); valeur = Wire.read(); Wire.endTransmission(); return valeur; } void ecriture_eeprom(int addr, int eeprom, int donnee) { Wire.beginTransmission(eeprom); Wire.write((addr >> 8) & 0xFF); Wire.write((addr >> 0) & 0xFF); Wire.write(donnee); Wire.endTransmission(); }
Pourquoi >> 8 et pourquoi & 0xFF ?
J’aime bien “imager” les choses et j’ai mis en upload une image dont je me représente les adresses de mon eeprom. Merci d’avance pour vos explication.
![]()
Partager