Модуль часов на DS1307 в качестве внешней памяти
- Войдите на сайт для отправки комментариев
Втр, 09/06/2020 - 14:03
Добрый день! Хочу применить модуль часов Tiny RTC i2c module на
микросхеме DS1307 в качестве модуля внешней энергонезависимой памяти..
Микросхема Dallas DS1307 представляет собой часы реального
времени с календарем и дополнительной памятью NW SRAM (56 байт).
Как я понимаю, эта NW SRAM память сохраняет данные за счет питания от батареи..
Вот я и хочу использовать эти 56 байт памяти..
Везде в статьях описано только использование часов реального времени
DS1307 в этом модуле и применение второй микросхемы EEPROM 24С32.
А вот как записать, прочитать 56 байт в DS1307 не могу найти..
что, в гугле искать совсем не умеем, да? - не стыдно?
https://forum.arduino.cc/index.php?topic=334785.0
Пример кода оттуда
#include "Wire.h" #define DS1307_I2C_ADDRESS 0x68 #define location 0x08 //DS 1307 storage registers 0x08 to 0x3F void setup() { Wire.begin(); Serial.begin(9600); } void loop() { static long cnt_absoluto_in = 0; static long cnt_absoluto_out = 0; Serial.println("Writing data to DS1307 nvram."); Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(location); //set storage register to begin Wire.write((uint8_t*)&cnt_absoluto_in, sizeof(cnt_absoluto_in));//write 4 bytes Wire.endTransmission(); Serial.println("Reading data from DS1307 nvram."); Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(location); //set storage register to begin Wire.endTransmission(); Wire.requestFrom(DS1307_I2C_ADDRESS, sizeof(cnt_absoluto_out)); Wire.readBytes((uint8_t*)&cnt_absoluto_out, sizeof(cnt_absoluto_out)); //read 4 bytes Wire.endTransmission(); Serial.println(cnt_absoluto_out); cnt_absoluto_in += 5; delay(500); }Спасибо, попробую разобраться...
И да, на буржуйском не понимаю толком и следовательно искать тоже не могу...
А вообще, информации и на русском полно и даже на этом сайте. Ищите по сочетанию DS1307 и AT24C32