SoloCodigo
		Programación Específica => Microcontroladores => Microcontroladores ATMEL => Mensaje iniciado por: novatòn en Jueves 23 de Febrero de 2006, 00:06
		
			
			- 
				[email:n5rou90p]williamfnarvaez@hotmail.com[/email:n5rou90p]
 [email:n5rou90p]williamfnarvaez@yahoo.com[/email:n5rou90p]
 
 Hola a todos, por favor necesito ayuda con el manejo del reloj DS1307 en el ATmega16, ya he seguido el ejemplo qeu esta en la ayuda del Codevision y no me funciona para nada, ni si quiera el momento que inicializo al reloj para que a la salida del pin OUT me de la onda de 1Hz no funciona.
 
 Ayudenme por favor es para un proyecto...
 
 
 Novatón.
- 
				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;
 }