Hola a todos como estan?
Me paso por aca porque estoy iniciando con el manejo del RTC ds1307, estoy programando en PICC, utilizando la libreria ds1307.c, muy parecida a la posteada en este hilo anteriormente.
Estoy programando un PIC 18F4550 con 4Mhz, y manejando una lcd grafica para la visualizacion, este es el codigo que tengo:
#include <18F4550.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#include <HDM64GS12.c>
#include <graphics.c>
#include <ds1307.c>
#use STANDARD_IO (A)
int a=0,mes,dia,hor,min,sec;
void main()
{
char k[8];
setup_adc_ports(NO_ANALOGS);
glcd_init(ON);
ds1307_init();
glcd_imagen(0);
ds1307_set_date_time(6,4,9,0,11,30,0);
delay_ms(500);
while(1){
ds1307_get_time(hor,min,sec);
glcd_fillScreen(OFF);
sprintf(k, "%d", min); // Convierte variable a cadena de texto, almacena en k
glcd_text57(1, 1, k, 1, ON);
sprintf(k, "%d", sec);
glcd_text57(1, 9, k, 1, ON);
delay_ms(1000);
}
}
Como ven inicializo la LCD y el modulo I2C y el programa deberia mostrarme el minuto y los segundos actuales... la SIMULACION en PROTEUS funciona correctamente, pero en el montaje no... aparentemente se bloquea en la sentencia ds1307_init(),
Los pines son:
SDA = PIN C4
SCL = PIN C5
no se que puedo estar haciendo mal, como ven despues de iniciar los modulos, llamo a una funcion glcd_imagen, que no la posteo pero lo que hace es mostrarme algo en la LCD para verificar que funciona... el problema es:
SI comentareo la linea ds1307_init, la LCD muestra la imagen, pero si la dejo activa la LCD se queda en blanco... aparentemente el bloqueo esta en esa linea...
Alguien sabe que puede estar ocurriendo?
El ds1307 lo tengo conectado con 2 R de 4,7K como pullups, un cristal de 32Khz y la bateria de 3V, pero pues cualquier sujerencia la agradeceria.
Gracias