17 #include <avr/interrupt.h> 26 #ifndef BMS_BASIC_TEMP_MCP9843_H_ 28 uint8_t sendRegData[8] =
29 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
32 char weekday[8][10] = {
"ERROR",
"Montag",
"Dienstag",
"Mittwoch",
"Donnerstag",
"Freitag",
"Samstag",
"Sonntag" };
50 #ifndef BMS_BASIC_TEMP_MCP9843_H_ 51 TWI_MasterInit ( &twi_TEMP_RTC, &TWIE, TWI_MASTER_INTLVL_LO_gc, TWI_BAUDSETTING );
85 printf (
"\x1B[1;31mERROR\x1B[0m - Oscillator angehalten - Zeit neu einstellen !\r\n\n" );
97 PMIC.CTRL |= PMIC_HILVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_LOLVLEN_bm;
170 set_datetime.hundredth_sec = settime( 0, 0 );
171 set_datetime.seconds = settime( 0, 0 );
172 set_datetime.minutes = settime( 3, 0 );
173 set_datetime.hours = settime( 1, 7 );
174 set_datetime.day = settime( 2, 0 );
175 set_datetime.month = settime( 0, 3 );
176 set_datetime.year = settime( 1, 6 );
177 set_datetime.wday = sonntag;
181 sendRegData[1] = set_datetime.hundredth_sec;
186 sendRegData[1] = set_datetime.seconds;
191 sendRegData[1] = set_datetime.minutes;
196 sendRegData[1] = set_datetime.hours;
199 sendRegData[0] = 0x17;
204 sendRegData[1] = set_datetime.day;
209 sendRegData[1] = set_datetime.month;
214 sendRegData[1] = set_datetime.year;
219 sendRegData[1] = set_datetime.wday;
224 #ifndef BMS_BASIC_TEMP_MCP9843_H_ #define DS1388_TRICKLE_CHRG_REG
Trickle Charger zum Laden des Backup-Akkus; TCS3 TCS2 TCS1 TCS0 DS1 DS0 ROUT1 ROUT0.
#define DS1388_FLAG_REG
Flag Register zeigt die OSF und WD Flags an; OSF WF 0 0 0 0 0 0 Flag.
#define DS1388_DAY_REG
Register Tag.
Konstanten, Filter und Commands für den Temperatursensor MCP 9843.
#define DS1388_HR_REG
Register Stunden.
Header, Definition der Konstanten und Commands für DS1388.
void DS1388_get_datetime(void)
Die Uhrzeit und das Datum werden ausgelesen.
#define DS1388_DAY_FLT_bm
Filter Tag (einstellig, max 9)
#define DS1388_H_SEC_REG
Register Hundertstel Sekunden.
#define DS1388_10_SEC_FLT_bm
Filter 10 Sekunden (max 5)
#define DS1388_HR_FLT_bm
Filter Stunden (max 9)
#define DS1388_MIN_FLT_bm
Filter Minuten (max 9)
#define DS1388_OSF_FLAG_FLT_bm
1 zeigt an, dass der Oszillator ausgeschaltet war und damit die Zeitdaten nicht mehr korrekt sind...
void TWI_MasterInit(TWI_Master_t *twi, TWI_t *module, TWI_MASTER_INTLVL_t intLevel, uint8_t baudRateRegisterSetting)
Initialise the TWI module.
#define DS1388_10_MIN_FLT_bm
Filter 10 Minuten (max 5)
register8_t readData[TWIM_READ_BUFFER_SIZE]
#define DS1388_SEC_REG
Register Sekunden.
#define DS1388_10_MON_FLT_bm
Filter 10 Monate (0-1)
#define DS1388_TR_CHG_DISABLE_bm
Trickle Charger disabled, Backupbatterie nicht aufladbar.
#define DS1388_MON_REG
Register Monat.
#define DS1388_12HR_SEL_bm
12-h-Darstellung, Bit 6 = 1 (|-Verknüpfung!), bit5 zeigt !AM/PM
XMEGA TWI master driver header file.
#define DS1388_WD_RST_DIS_bm
Watchdog und RST PIN disabled.
#define DS1388_YR_REG
Register Jahr.
#define DS1388_24HR_SET_FLT_bm
SET 24h-Format gesetzt (=0) ?
#define DS1388_OSC_EN_bm
Oszillator im Batteriebetrieb ein.
#define DS1388_YR_FLT_bm
Filter Jahr (einstellig, max 9)
void TWI_MasterInterruptHandler(TWI_Master_t *twi)
Common TWI master interrupt service routine.
bool TWI_MasterWrite(TWI_Master_t *twi, uint8_t address, uint8_t *writeData, uint8_t bytesToWrite)
TWI write transaction.
#define DS1388_01_SEC_FLT_bm
Filter Zehntel Sekunden.
void DS1388_set_datetime(void)
Die Uhrzeit und das Datum werden neu gesetzt.
#define DS1388_SEC_FLT_bm
Filter Sekunden (max 9)
#define DS1388_FLAG_REG_RST_bm
Oscillator Stop Flag, muss zum Start auf 0 gesetzt werden.
#define DS1388_WDAY_FLT_bm
Filter Wochentag (01-07)
#define DS1388_10_HR_24_FLT_bm
Filter 10 Stunden im 24h-Format (max 2)
#define DS1388_MON_FLT_bm
Filter Monat (einstellig)
TWI master driver struct.
#define DS1388_001_SEC_FLT_bm
Filter Hundertstel Sekunden.
#define DS1388_WDAY_REG
Register Wochentag.
bool TWI_MasterRead(TWI_Master_t *twi, uint8_t address, uint8_t bytesToRead)
TWI read transaction.
#define DS1388_10_DAY_FLT_bm
Filter 10 Tage (max 3)
#define DS1388_MIN_REG
Register Minuten.
void DS1388_init()
Einstellungen des µC für die Arbeit mit DS1388.
#define DS1388_10_YR_FLT_bm
Filter Zehn Jahre (max 9)
#define DS1388_CTRL_REG
Control Register schaltet Oszillator mit Batterie und die Watchdogfunktionen; !EOSC 0 0 0 0 0 WDE WD/...
#define DS1388_CLOCK_ADDR
Uhr-Adresse.