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 :

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();
}
Ceci inscrit le nombre 23 à l’adresse 1 puis je li cette valeur. Je ne comprend pas c’est :

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.

Nom : eeprom.gif
Affichages : 613
Taille : 17,2 Ko