Hola, soy nuevo en esto!
espero q me puedan ayudar estoy haciendo un reloj propeller,el cual consiste en una tira de leds giratorios que apagando y prendiendo crean el efecto visual de un reloj, y estoy usando un ds1307 y por lo tanto, la comunicacion I2C para guardar ahi la hora. Mi codificacion es la siguiente, me base en el manual y en la hoja de datos para sacrlo pero no funciona, espero q me puedan ayudar
#include <p18f4550.h>
#include <i2c.h>
#define RTC_SDA PIN_B0
#define RTC_SCL PIN_B1
#pragma config PLLDIV = 1 // No prescale (4 MHz oscillator input drives PLL directly)
#pragma config CPUDIV = OSC1_PLL2 // [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
#pragma config USBDIV = 1 // USB clock source comes directly from the primary oscillator block with no postscale
#pragma config FOSC = XT_XT // HS oscillator, HS used by USB
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor disabled
#pragma config IESO = OFF // Oscillator Switchover mode disabled
#pragma config PWRT = OFF // PWRT disabled
#pragma config BOR = OFF // Brown-out Reset disabled in hardware and software
#pragma config VREGEN = OFF // USB voltage regulator disabled
#pragma config WDT = OFF // HW Disabled - SW Controlled
#pragma config MCLRE = ON // MCLR pin enabled; RE3 input pin disabled
#pragma config LPT1OSC = OFF // Timer1 configured for higher power operation
#pragma config PBADEN = OFF // PORTB<4:0> pins are configured as digital I/O on Reset
#pragma config CCP2MX = ON // CCP2 input/output is multiplexed with RC1
#pragma config STVREN = ON // Stack full/underflow will cause Reset
#pragma config LVP = OFF // Single-Supply ICSP disabled
#pragma config ICPRT = OFF // ICPORT disabled
#pragma config XINST = OFF // Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#pragma config DEBUG = OFF // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
// Data and code memory without protection
unsigned char SEG,MIN,HRS,DAY,DIA,MES,ANO,SEGUNDOS;
int BAN=1;
void main(void)
{
//CONFIGURAR SSPCON1
SSPCON1 = 0X00;
SSPCON1bits.SSPEN = 1;
// CONFIGURAR BRG A velocidad de 100 KHZ con un cristal de 4MHZ
SPBRG = 0x027;
//CONFIGURACION ADCON1 TODOS SALIDAS DIGITALES
ADCON1=0x0f;
//CONFIGURACION TRISB
TRISB= 0x03;
TRISD=0x00;
PORTD=0B00000000;
SEG=0b00000000;
StartI2C();
WriteI2C(0B11010000);// DIRECCION DEL DS1307 EN ESCLAVO
AckI2C();
WriteI2C(0B00000000);//INDICA QUE POSICION SE VERA CAMBIADA, EN ESTE CASO LOS SEGUNDOS
AckI2C();
WriteI2C(SEG);// iNDICA EL SEG. ACTUAL
AckI2C();
StopI2C();//DEJA DE MANDAR INSTRUCCIONES
//pROCESO DE lECTURA
StartI2C();
WriteI2C(0B11010001);// LEE DEL DS1307
AckI2C();
SEGUNDOS = ReadI2C();
NotAckI2C();
StopI2C();
do
{
//pROCESO DE lECTURA
StartI2C();
WriteI2C(0B11010001);// LEE DEL DS1307
AckI2C();
SEGUNDOS = ReadI2C();
NotAckI2C();
StopI2C();
}while(BAN==0);