/*
 * RS5C372A_RTC.c
 *
 * Created: 2019. 05. 31. 14:33:20
 * Author : asdman
 */

#ifndef _RS5C372A_RTC_c
#define _RS5C372A_RTC_c

#include "TWI.h"



void RTC_init(void)
{
	i2c_start(RTC_ADDRESS+I2C_WRITE);	//rtc addr
	i2c_write(Control_Register_2);	//int reg addr
	i2c_write(0b00101000);			
	//i2c_stop();
	//i2c_start(RTC_ADDRESS+I2C_WRITE);
	//i2c_write(Control_Register_1);	
	//i2c_write(0b10110010);			
	i2c_stop();
	set_time(0x00,0x00,0x00);
	set_date(0x00,0x00,0x00,0x00);
}
 
void set_time(unsigned char secf,unsigned char minf, unsigned char hourf)
{
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Second_Counter);
	i2c_write(secf);
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Minute_Counter);
	i2c_write(minf);
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Hour_Counter);
	i2c_write(hourf);
}

void set_date(unsigned char dayf,unsigned char monthf, unsigned char yearf, unsigned char dayofweekf)
{
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Day_of_the_Week_Counter);
	i2c_write(dayofweekf);
	i2c_stop();
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Day_Counter);
	i2c_write(dayf);
	i2c_stop();
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Month_Counter);
	i2c_write(monthf);
	i2c_stop();
	i2c_start(RTC_ADDRESS+I2C_WRITE);
	i2c_write(Year_Counter);
	i2c_write(yearf);
	i2c_stop();
}

#endif //_RS5C372A_RTC_c