Buenas como estan estoy haciendo un proyecyo y nesecito programar un ds1307 con el pic18F452, no he podido programarlo bien, entonces necesito ayuda. Necesito un favor, voy a escribir un rutinita para escribir en el ds1307, lo miren y me digan donde me estoy equivocando listo?. Hay va
TRISCbits.TRISC3=0;//SCL
TRISCbits.TRISC4=0;//SDA
SSPSTAT=0X80//Habilitar modo estandard de velocidad
SSPCON1=0X28// habilitar pines y escoger modo maestro
//rutina a escribir//
SSPCON2bits.SEN=1;//inicializa condicion de star
while(SSPCON2bits.SEN==1)
{//espera hasta ke aya el cambio
}
PIR1bits.SSPIF=0;//poner cero la bandara porke hibo interrpcion
SSPBUF=0XD0;// dato a decirle al ds que se le va a escribir
while(SSPCON2bits.BF==1)
{//Mientras ke este en 1 bf es porke el pic esta sacando los pulso por la pata sda
}
TRISCbits.TRISC4=1// Nose si esto paso sea necesario, es para preguntar por ack
SSPCON2bits.RCEN=1//tampoco nose si este paso sirva
while(SSPCON2bits.ACKSTAT==1)
{//Espera por elñ ack ke manda el esclavo
}
PIR1bits.SSPIF=0;
TRISCbits.TRISC4=0//nose si es necesario este paso
SSPBUF=0;//Pimera direccion del ds en el ke se va escribir
while(SSPCON2bits.BF==1)
{//Mientras ke este en 1 bf es porke el pic esta sacando los pulso por la pata sda
}
TRISCbits.TRISC4=1// Nose si esto paso sea necesario, es para preguntar por ack
while(SSPCON2bits.ACKSTAT==1)
{//Espera por elñ ack ke manda el esclavo
}
TRISCbits.TRISC4=0//nose si es necesario este paso
PIR1bits.SSPIF=0;
SSPBUF=0X84//Dato y habilitador para el ds1307
while(SSPCON2bits.BF==1)
{//Mientras ke este en 1 bf es porke el pic esta sacando los pulso por la pata sda
}
TRISCbits.TRISC4=1// Nose si esto paso sea necesario, es para preguntar por ack
while(SSPCON2bits.ACKSTAT==1)
{//Espera por elñ ack ke manda el esclavo
}
TRISCbits.TRISC4=0
PIR1bits.SSPIF=0;
SSPCON2bits.PEN=1// Condicion para el stop
While(SSPCON2bits.PEN=1)
{//ESPERA por el cambio de 0 a 1 para el stop
}
si saben en ke estoy equivocandome por sabor diganme, o si me falta algo, yo se ke me estoy equivocando en algo, si saben diganme, ke este bien. muchas gracias chao