Thomas schrieb:
> TWI_Send_Address(&TWIE, DS1307, 0); //schreiben
> _delay_us(500);
> TWIE.MASTER.DATA = 00; //Sekunden
> _delay_us(500);
> TWIE.MASTER.DATA = 80; //Uhr starteb
> _delay_us(500);
O.K., die Initialisierung sieht nach Kampi aus ...
Woher hast Du denn diese Sequenz?
DS1703 braucht (zum Schreiben)
- Adresse des Slave
- Byte-Position im Speicher wohin geschrieben gelesen werden soll
- Byte, was geschrieben werden soll
- ggf. weiteres Byte, was an die nächste Byte-Position im Speicher
geschrieben werden soll
- ...
So wie Du das übergibst stoppst Du den Oszillator:
Bit 7 of Register 0 is the clock halt
(CH) bit. When this bit is set to 1, the oscillator is disabled.
Was Du mit dem Kommentar "// Sekunden" übergibst ist die Byte-Position
0x00. Mit 0x80 setzt Du das CH-Bit und stoppst den Oszillator.
Du solltest, denke ich, nochmal das Datenblatt sichten ..
Beim Lesen sieht es anders aus da wird die Adresse des Slave mit
Lese-Bit übergeben, dann sendet der Slave, bis ein NAK kommt. Das finde
ich in Deinem Code nicht.