Newer
Older
rtc / rtc.h
/**
 *   @file rtc.h
 *
 *   @date 05.07.2012
 * @author Pascal Gollor
 *     web http://www.pgollor.de
 *
 * @copyright Dieses Werk ist unter einer Creative Commons Lizenz vom Typ
 * Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Deutschland zugänglich.
 * Um eine Kopie dieser Lizenz einzusehen, konsultieren Sie
 * http://creativecommons.org/licenses/by-nc-sa/3.0/de/ oder wenden Sie sich
 * brieflich an Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
 *
 * -- englisch version --
 * @n This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
 *
 */

#ifndef RTC_H_
#define RTC_H_


#include <avr/io.h>



// I2C real time clock
#define I2C_RTC 0xD0


struct str_time
{
	uint8_t second;
	uint8_t minute;
	uint8_t hour;
};
typedef struct str_time time;

struct str_date
{
	uint8_t day;
	uint8_t month;
	uint8_t year;
	uint8_t weekday;
};
typedef struct str_date date;


uint8_t DecToBcd(uint8_t val);
uint8_t BcdToDec(uint8_t val);


void rtc_setup(uint8_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second);
void rtc_set_date(date* datum);
void rtc_set_time(time* zeit);
uint8_t rtc_init(void);
void rtc_read(void);
void rtc_enable(uint8_t e);
void rtc_write_ram(uint8_t, uint8_t);
uint8_t rtc_read_ram(uint8_t);
void rtc_inc(void);

uint8_t rtc_getSecond(void);
uint8_t rtc_getMinute(void);
uint8_t rtc_getHour(void);
uint8_t rtc_getDay(void);
uint8_t rtc_getMonth(void);
uint8_t rtc_getYear(void);
time rtc_getTime(void);
time* rtc_getTimeP(void);
date rtc_getDate(void);
date* rtc_getDateP(void);


#endif /* RTC_H_ */