Guten Tag, Ich habe eine DS1307 RTC, ein EEprom und ein LM75 Temperatursensor an einem ATmega16 angeschlossen. Als Lib nehme ich die I2C Library von Peter Fleury. Das Auslesen des Temperatursensors, so wie das Beschreiben und das Auslesen des EEproms funktionieren ohne Probleme. Nun wollte ich die DS1307 in Betrieb nehmen. Als erstes habe ich mich etwas mit dem Datenblatt beschäftigt, um die Funktionen und Eigenschaften der RTC kennen zu lernen. Jedoch weiss ich noch immer nicht, wie ich die RTC beschreiben und auslesen kann. Auch google brachte keine brauchbaren ergebnisse, da meistens eigene Libs verwendet werden. Auch bei myAVR, wo ich die Komponenten gekauft habe, konnte ich keine brauchbare Source finden. Hat jemand einen kleinen Sourcecode, der auf der Peter Fleury library basier? Oder kann mir wenigstens jemand Step-by-Step erklären, was ich für Bytes zum RTC über den TWI schiken muss? Gruss JeyBee66
Servus, habe mal eine DS1307 Lese- und Schreibroutine zusammen kopiert: Beachte nur die Reihenfolge , die I2C- Befehle sind nicht aus der Lib von Peter Fleury i2c_start(ds1307+I2C_WRITE); // set device address and write mode i2c_write(0x00); i2c_rep_start(ds1307+I2C_READ); // setze Leserister-Adresse sekunde= i2c_readAck(); // höherwertiges Byte, Daten auslesen minute= i2c_readAck(); // LSB auswerten niederwertiges Byte stunde = i2c_readAck(); // höherwertiges Byte, Daten auslesen tagnr = i2c_readAck(); // LSB auswerten niederwertiges Byte tag = i2c_readAck(); // höherwertiges Byte, Daten auslesen monat= i2c_readAck(); // LSB auswerten niederwertiges Byte jahr= i2c_readNak(); //*Nak!! LSB auswerten niederwertiges Byte i2c_stop(); ret = i2c_start(ds1307+I2C_WRITE); // set device address and write mode i2c_write(0x00); // Startadresse i2c_write(0x00); // sekunde i2c_write(0x05); // minute i2c_write(0x57); // stunde i2c_write(0x06); // tagnr i2c_write(0x30); // tag i2c_write(0x12); // monat) i2c_write(0x05); // jahr i2c_write(0x90); // Sekundentakt i2c_stop(); // Bus stop
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.