• Viernes 3 de Mayo de 2024, 02:42

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - wadysal

Páginas: [1]
1
Microcontroladores ATMEL / Re: Reloj Ds1307 Con Atmega16 En Codevision
« en: Domingo 11 de Julio de 2010, 06:46 »
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;
}

Páginas: [1]