Hanna
Sourcecode Batteriemanagementsystem
Datenstrukturen | Aufzählungen | Funktionen | Variablen
ds1388_rtc.h-Dateireferenz

Header, Definition der Konstanten und Commands für DS1388. Mehr ...

#include <stdbool.h>
Include-Abhängigkeitsdiagramm für ds1388_rtc.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  datetime_t
 

Makrodefinitionen

Zeit einstellen
#define settime(zehner, einser)   (einser | (zehner << 4))
 
#define ZEIT_SETZEN   1
 
TWI (I2C) Konfiguration
#define TWI_BAUDRATE   100000
 
#define TWI_BAUDSETTING   TWI_BAUD(F_CPU, TWI_BAUDRATE)
 
#define TWI_RTC_MASTER_PORT   PORTE
 
#define TWI_RTC   TWIE
 
Auswahl des Funktionsblocks, der angesprochen wird und TWI-Adresse
#define DS1388_ADDR_BITS   0x68
 Basisadresse, muss um Blockadresse ergänzt werden.
 
#define DS1388_BLOCKSEL_CLOCK_BITS   0x00
 Uhr-Block.
 
#define DS1388_BLOCKSEL_L_EEPROM_BITS   0x01
 Lower EEPROM Block.
 
#define DS1388_BLOCKSEL_U_EEPROM_BITS   0x02
 Upper EEPROM Block.
 
#define DS1388_CLOCK_ADDR   (DS1388_ADDR_BITS | DS1388_BLOCKSEL_CLOCK_BITS)
 Uhr-Adresse.
 
#define DS1388_L_EEPROM_ADDR   (DS1388_ADDR_BITS | DS1388_BLOCKSEL_L_EEPROM_BITS)
 Lower EEPROM Adresse.
 
#define DS1388_U_EEPROM_ADDR   (DS1388_ADDR_BITS | DS1388_BLOCKSEL_U_EEPROM_BITS)
 Upper EEPROM Adresse.
 
Registeradressen
#define DS1388_H_SEC_REG   0x00
 Register Hundertstel Sekunden.
 
#define DS1388_SEC_REG   0x01
 Register Sekunden.
 
#define DS1388_MIN_REG   0x02
 Register Minuten.
 
#define DS1388_HR_REG   0x03
 Register Stunden.
 
#define DS1388_WDAY_REG   0x04
 Register Wochentag.
 
#define DS1388_DAY_REG   0x05
 Register Tag.
 
#define DS1388_MON_REG   0x06
 Register Monat.
 
#define DS1388_YR_REG   0x07
 Register Jahr.
 
#define DS1388_TRICKLE_CHRG_REG   0x0A
 Trickle Charger zum Laden des Backup-Akkus; TCS3 TCS2 TCS1 TCS0 DS1 DS0 ROUT1 ROUT0.
 
#define DS1388_FLAG_REG   0x0B
 Flag Register zeigt die OSF und WD Flags an; OSF WF 0 0 0 0 0 0 Flag.
 
#define DS1388_CTRL_REG   0x0C
 Control Register schaltet Oszillator mit Batterie und die Watchdogfunktionen; !EOSC 0 0 0 0 0 WDE WD/RST.
 
CONFIG Register
#define DS1388_24HR_SEL_bm   0x00
 24-h-Darstellung, Bit 6 = 0 (&-Verknüpfung!)
 
#define DS1388_12HR_SEL_bm   0x40
 12-h-Darstellung, Bit 6 = 1 (|-Verknüpfung!), bit5 zeigt !AM/PM
 
#define DS1388_TR_CHG_DISABLE_bm   0x00
 Trickle Charger disabled, Backupbatterie nicht aufladbar.
 
#define DS1388_FLAG_REG_RST_bm   0x00
 Oscillator Stop Flag, muss zum Start auf 0 gesetzt werden.
 
#define DS1388_WD_RST_EN_bm   0x03
 Watchdog und RST PIN enabled, (RST auf GND für Twd, wenn WD=0)
 
#define DS1388_WD_RST_DIS_bm   0x00
 Watchdog und RST PIN disabled.
 
#define DS1388_OSC_EN_bm   0x00
 Oszillator im Batteriebetrieb ein.
 
#define DS1388_OSC_DIS_bm   0x80
 Oszillator im Batteriebetrieb aus (Zeit wird nicht mehr weitergezählt !)
 
Filter, alle Register sind 8bit-Register
#define DS1388_001_SEC_FLT_bm   0x0F
 Filter Hundertstel Sekunden.
 
#define DS1388_01_SEC_FLT_bm   0xF0
 Filter Zehntel Sekunden.
 
#define DS1388_SEC_FLT_bm   0x0F
 Filter Sekunden (max 9)
 
#define DS1388_10_SEC_FLT_bm   0x70
 Filter 10 Sekunden (max 5)
 
#define DS1388_MIN_FLT_bm   0x0F
 Filter Minuten (max 9)
 
#define DS1388_10_MIN_FLT_bm   0x70
 Filter 10 Minuten (max 5)
 
#define DS1388_HR_FLT_bm   0x0F
 Filter Stunden (max 9)
 
#define DS1388_10_HR_24_FLT_bm   0x30
 Filter 10 Stunden im 24h-Format (max 2)
 
#define DS1388_10_HR_12_FLT_bm   0x10
 Filter 10 Stunden im 12h-Format (max 1)
 
#define DS1388_AM_PM_FLT_bm   0x20
 Filter AM (0) PM (1) Anzeige.
 
#define DS1388_WDAY_FLT_bm   0x07
 Filter Wochentag (01-07)
 
#define DS1388_DAY_FLT_bm   0x0F
 Filter Tag (einstellig, max 9)
 
#define DS1388_10_DAY_FLT_bm   0x30
 Filter 10 Tage (max 3)
 
#define DS1388_MON_FLT_bm   0x0F
 Filter Monat (einstellig)
 
#define DS1388_10_MON_FLT_bm   0x10
 Filter 10 Monate (0-1)
 
#define DS1388_YR_FLT_bm   0x0F
 Filter Jahr (einstellig, max 9)
 
#define DS1388_10_YR_FLT_bm   0xF0
 Filter Zehn Jahre (max 9)
 
#define DS1388_24HR_SET_FLT_bm   0x40
 SET 24h-Format gesetzt (=0) ?
 
#define DS1388_OSF_FLAG_FLT_bm   0x80
 1 zeigt an, dass der Oszillator ausgeschaltet war und damit die Zeitdaten nicht mehr korrekt sind.
 

Aufzählungen

enum  weekday {
  montag = 1, dienstag, mittwoch, donnertsag,
  freitag, samstag, sonntag
}
 

Funktionen

void DS1388_get_datetime (void)
 Die Uhrzeit und das Datum werden ausgelesen. Mehr ...
 
void DS1388_init ()
 Einstellungen des µC für die Arbeit mit DS1388. Mehr ...
 
void DS1388_set_datetime (void)
 Die Uhrzeit und das Datum werden neu gesetzt. Mehr ...
 

Variablen

datetime_t now
 
uint8_t sendRegData []
 
char weekday [8][10]
 

Ausführliche Beschreibung

Header, Definition der Konstanten und Commands für DS1388.

Autor
Hanna Burggraf
Datum
12.09.2015
$Revision: 363 $
$Date: 2016-03-21 21:28:33 +0100 (Mon, 21 Mar 2016) $

Definiert in Datei ds1388_rtc.h.

Dokumentation der Funktionen

void DS1388_get_datetime ( void  )

Die Uhrzeit und das Datum werden ausgelesen.

Die Uhrzeit und das Datum werden vollständig ausgelesen und in der globalen struct-Variable now gespeichert.

Definiert in Zeile 107 der Datei ds1388_rtc.c.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void DS1388_init ( )

Einstellungen des µC für die Arbeit mit DS1388.

Einstellungen des µC für die Arbeit mit DS1388. Insbesondere Interrupts und Eingang für den Event Pin werden aktiviert.

Einstellungen
  • CONFIG Register - Oszillator bei Batteriebetrieb ein, Watchdog aus.
  • TRICKLE CHARGE Register - TC ausschalten.
  • Stundenregister lesen, um 24h-Einstellung zu prüfen => Wenn 24h-bit nicht 0, dann 24h-bit löschen => 24h-Modus aktiv.
  • Prüfen, ob der Oszillator seit dem letzten Start angehalten wurde => Oscillator Stop Flag OSF zurücksetzen.
  • Ggf. Zeit einstellen.

Definiert in Zeile 46 der Datei ds1388_rtc.c.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void DS1388_set_datetime ( void  )

Die Uhrzeit und das Datum werden neu gesetzt.

Die Uhrzeit und das Datum werden neu gesetzt. Eine Batterie dient als Pufferspeicher und soll ermöglichen, dass die Uhr im RTC-Baustein weiterläuft. Wenn die Zeit nicht stimmt oder neu justiert werden muss, wird diese Funktion einmalig eingesetzt.

Definiert in Zeile 166 der Datei ds1388_rtc.c.

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird: