Hallo,
sieht nach Arduino aus?
Wire.begin gehört ins setup
und in einer Funktion zum Bsp. kannste aufeinanderfolgende Register wie
folgt beschreiben
1 | bool set_RTC_Alarm (int i2c_adresse, byte Stunde, byte Minute, byte Sekunde)
|
2 | {
|
3 | bool error = false; // Fehlerstatus setzen
|
4 |
|
5 | Wire.beginTransmission(i2c_adresse);
|
6 | Wire.write(0x07); // setzen auf Registernummer bzw. dort wo es losgehen soll
|
7 | Wire.write(decToBcd(Sekunde)); // setze Alarmzeit auf xx Sekunden im Register 07h
|
8 | Wire.write(decToBcd(Minute)); // setze Alarmzeit auf xx Minuten im Register 08h
|
9 | Wire.write(decToBcd(Stunde)); // setze Alarmzeit auf xx Stunden im Register 09h
|
10 |
|
11 | if (Wire.endTransmission() > 0 ) {
|
12 | error = true; // I2C Busfehler
|
13 | }
|
14 | return error;
|
15 | }
|
Ansonsten musste immer mit endTransmission enden und beginTransmission
anfangen, wenn die Register nicht hintereinander liegen.