Esto configurarlo en el wizzard
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
Estas son generadas por el wizzard
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
Ejemplo de como configurar el DS1307 con la UART al finalizar envia la fecha y la hora periodicamente por UART
void SetClock(void){
printf("Set");
NewLine(); //Funcion NewLine() envia un CR y LF por la uart
dd=bcd2bin(GetHex());
mm=bcd2bin(GetHex());
yy=bcd2bin(GetHex());
h=bcd2bin(GetHex());
m=bcd2bin(GetHex());
s=bcd2bin(GetHex());
rtc_set_date(dd,mm,yy);
rtc_set_time(h,m,s);
printf("Ok");
putchar(0x0D);
for(;
{
rtc_get_time(&h,&m,&s);
rtc_get_date(&dd,&mm,&yy);
printf("%02u/%02u/20%02u %02u:%02u:%02u",dd,mm,yy,h,m,s);
NewLine();
delay_ms(1000);
}
}
unsigned char GetHex(void){
unsigned char H,L,Dato;
H=getchar()-0x30;
L=getchar()-0x30;
Dato=(H<<4)+L;
return Dato;
}