Hanna
Sourcecode Batteriemanagementsystem
ds1388_rtc.h
gehe zur Dokumentation dieser Datei
1 
14 #ifndef DS1388_H_
15 #define DS1388_H_
16 
17 #include <stdbool.h>
18 
20 
21 #define settime(zehner, einser) (einser | (zehner << 4))
22 #define ZEIT_SETZEN 1
23 
24 
26 
27 #ifndef BMS_BASIC_TEMP_MCP9843_H_
28 #define TWI_BAUDRATE 100000
29 #define TWI_BAUDSETTING TWI_BAUD(F_CPU, TWI_BAUDRATE)
30 #define TWI_RTC_MASTER_PORT PORTE
31 #define TWI_RTC TWIE
32 #endif
33 
34 
36 
37 #define DS1388_ADDR_BITS 0x68
38 #define DS1388_BLOCKSEL_CLOCK_BITS 0x00
39 #define DS1388_BLOCKSEL_L_EEPROM_BITS 0x01
40 #define DS1388_BLOCKSEL_U_EEPROM_BITS 0x02
41 
42 #define DS1388_CLOCK_ADDR (DS1388_ADDR_BITS | DS1388_BLOCKSEL_CLOCK_BITS)
43 #define DS1388_L_EEPROM_ADDR (DS1388_ADDR_BITS | DS1388_BLOCKSEL_L_EEPROM_BITS)
44 #define DS1388_U_EEPROM_ADDR (DS1388_ADDR_BITS | DS1388_BLOCKSEL_U_EEPROM_BITS)
45 
46 
47 
49 #define DS1388_H_SEC_REG 0x00
50 #define DS1388_SEC_REG 0x01
51 #define DS1388_MIN_REG 0x02
52 #define DS1388_HR_REG 0x03
53 #define DS1388_WDAY_REG 0x04
54 #define DS1388_DAY_REG 0x05
55 #define DS1388_MON_REG 0x06
56 #define DS1388_YR_REG 0x07
57 
58 #define DS1388_TRICKLE_CHRG_REG 0x0A
59 #define DS1388_FLAG_REG 0x0B
60 #define DS1388_CTRL_REG 0x0C
61 
62 
63 
66 #define DS1388_24HR_SEL_bm 0x00
67 #define DS1388_12HR_SEL_bm 0x40
68 
69 #define DS1388_TR_CHG_DISABLE_bm 0x00
70 
71 #define DS1388_FLAG_REG_RST_bm 0x00
72 
73 #define DS1388_WD_RST_EN_bm 0x03
74 #define DS1388_WD_RST_DIS_bm 0x00
75 #define DS1388_OSC_EN_bm 0x00
76 #define DS1388_OSC_DIS_bm 0x80
77 
78 
79 
81 #define DS1388_001_SEC_FLT_bm 0x0F
82 #define DS1388_01_SEC_FLT_bm 0xF0
83 
84 #define DS1388_SEC_FLT_bm 0x0F
85 #define DS1388_10_SEC_FLT_bm 0x70
86 
87 #define DS1388_MIN_FLT_bm 0x0F
88 #define DS1388_10_MIN_FLT_bm 0x70
89 
90 #define DS1388_HR_FLT_bm 0x0F
91 #define DS1388_10_HR_24_FLT_bm 0x30
92 #define DS1388_10_HR_12_FLT_bm 0x10
93 #define DS1388_AM_PM_FLT_bm 0x20
94 
95 #define DS1388_WDAY_FLT_bm 0x07
96 
97 #define DS1388_DAY_FLT_bm 0x0F
98 #define DS1388_10_DAY_FLT_bm 0x30
99 
100 #define DS1388_MON_FLT_bm 0x0F
101 #define DS1388_10_MON_FLT_bm 0x10
102 
103 #define DS1388_YR_FLT_bm 0x0F
104 #define DS1388_10_YR_FLT_bm 0xF0
105 
106 #define DS1388_24HR_SET_FLT_bm 0x40
107 
108 #define DS1388_OSF_FLAG_FLT_bm 0x80
109 
110 
111 #ifndef BMS_BASIC_TEMP_MCP9843_H_
112 extern uint8_t sendRegData[];
113 #endif
114 
115 typedef struct
116 {
117  uint8_t hundredth_sec;
118  uint8_t seconds;
119  uint8_t minutes;
120  uint8_t hours;
121  uint8_t wday;
122  uint8_t day;
123  uint8_t month;
124  uint8_t year;
125 } datetime_t;
126 
127 enum weekday
128 {
129  montag = 1, dienstag, mittwoch, donnertsag, freitag, samstag, sonntag
130 };
131 
132 extern char weekday[8][10];
133 extern datetime_t now;
134 
135 // Funktionen
136 void DS1388_init ();
137 void DS1388_get_datetime ( void );
138 
139 #if ZEIT_SETZEN
140 void DS1388_set_datetime ( void );
141 #endif
142 
143 
144 #endif //DS1388_H_
void DS1388_init()
Einstellungen des µC für die Arbeit mit DS1388.
Definition: ds1388_rtc.c:46
void DS1388_set_datetime(void)
Die Uhrzeit und das Datum werden neu gesetzt.
Definition: ds1388_rtc.c:166
void DS1388_get_datetime(void)
Die Uhrzeit und das Datum werden ausgelesen.
Definition: ds1388_rtc.c:107