Epson RTC 72421 Datum und Uhrzeit stellen

Gast #7304743
Lesenswert?

Dass ist nur Arduino Hass, der wird hier üball ausgekippt wenns nur irgend geht...

Aber wie das auf dieser einen einzigen Platine die es gibt auf der dieser Epson RTC Chip verbaut ist - kommt halt eben auf genau diese Platine an! Das Manual/Datasheet findet Google für dich - oder aber die Ardu*-Hater die sich aber nicht zu fein sind ein dummer Suchbot für die Google-Faulen zu sein...

Moderator (Firma: Titel) Persönliche Seite #7305599
Lesenswert?

Marcel schrieb:

Hatte bis jetzt mit dem Arduino noch nicht soviel zutun gehabt

Aber jetzt sollst du die Aufgabe mit so einem lösen, oder?

Marcel schrieb:

finde dazu nix passendes.

Mein Google tut tadellos und findet das hier mit dem ausführlichen Datenblatt: Beitrag "Uhrenbaustein RTC 72421"

Wo wird denn wo was angeschlossen

In dem Datenblatt steht das drin.

Gast #7306129
Lesenswert?

Marcel schrieb:

Ich habe hier auf einer Platine ein Epson RTC 72421, womit kann man den ansteuern um das Datum und die Uhrzeit neu einzustellen?

Diese Funktion hat mit CHatGPT generiert:

1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <unistd.h>
4
#include <time.h>
5
#include "i2c_lib.h"  // Bibliothek für I2C-Kommunikation
6

7
#define RTC_ADDRESS 0x6F  // I2C-Adresse des RTC-Chips
8

9
void set_rtc_time(int year, int month, int day, int hour, int minute, int second) {
10
  // Befehle zum Schreiben in die RTC-Register
11
  const uint8_t SECONDS_REG = 0x00;
12
  const uint8_t MINUTES_REG = 0x01;
13
  const uint8_t HOURS_REG = 0x02;
14
  const uint8_t DAY_REG = 0x03;
15
  const uint8_t MONTH_REG = 0x04;
16
  const uint8_t YEAR_REG = 0x05;
17

18
  // Daten für die RTC-Register vorbereiten
19
  uint8_t seconds = ((second / 10) << 4) | (second % 10);
20
  uint8_t minutes = ((minute / 10) << 4) | (minute % 10);
21
  uint8_t hours = ((hour / 10) << 4) | (hour % 10);
22
  uint8_t day = ((day / 10) << 4) | (day % 10);
23
  uint8_t month = ((month / 10) << 4) | (month % 10);
24
  uint8_t year = ((year / 10) << 4) | (year % 10);
25

26
  // Verbindung zum RTC-Chip herstellen
27
  int fd = i2c_init("/dev/i2c-1");  // öffne I2C-Schnittstelle
28
  i2c_select_device(fd, RTC_ADDRESS);  // wähle RTC-Chip auf der I2C-Schnittstelle aus
29

30
  // Sende Befehle zum Schreiben in die RTC-Register
31
  i2c_write_byte(fd, SECONDS_REG, seconds);
32
  i2c_write_byte(fd, MINUTES_REG, minutes);
33
  i2c_write_byte(fd, HOURS_REG, hours);
34
  i2c_write_byte(fd, DAY_REG, day);
35
  i2c_write_byte(fd, MONTH_REG, month);
36
  i2c_write_byte(fd, YEAR_REG, year);
37

38
  // Schließe die Verbindung zum RTC-Chip
39
  i2c_close(fd);
40
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren