-
-
Erfahrener Benutzer
Roboter Experte
Hallo Zarathustra,
es ist genau so, wie du es sagst:
Schreiben:
1) i2c_start(slave_id);
2) i2c_write(addr, wohin man schreiben will);
[2a) i2c_write(high(addr), falls im Baustein mehr als 256 Speicherstellen vorhanden sind);]
3) i2c_write(Wert, den man an die Position [addr] schreibenwill);
Die schreibaddr wird dann normaleweise automatisch um 1 erhöht, so dass man auch mehrere Bytes nacheinander schreiben kann.
4) i2c_stop();
Lesen:
1) i2c_start_wait(slave_id);
2) i2c_write(addr, von wo man lesen will);
[2a) i2c_write(high(addr), falls im Baustein mehr als 256 Speicherstellen vorhanden sind);]
3) i2c_repeated_start(slave_id+1); Bus nochmal starten, jetzt aber für Schreibzugriff, deshalb slave_id+1
4) var=i2c_readAck(); wenn man noch ein Byte lesen will bzw i2c_readNak(); , wenn man keine Bytes mehr vom slave will
5)i2c_stop();
MfG Mark
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen