TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: picwilliam en 26 de Noviembre de 2005, 16:11:00

Título: ayuda con el ds1307
Publicado por: picwilliam en 26 de Noviembre de 2005, 16:11:00
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
Título: RE: ayuda con el ds1307
Publicado por: patolinec en 27 de Noviembre de 2005, 08:22:00
Mira yo te sugiero que mejor no programes eso en ensamblador, porque simplemente tienes que manejar el I2C interno del micro y eso es un poco largo, mejor prueba a utilizar algun compilador de basic o de c, que es mus mas sencillo y rapido suerte
Título: RE: ayuda con el ds1307
Publicado por: poi5on en 27 de Noviembre de 2005, 10:32:00
Hola a todos,
Ese lenguaje es C? yo no creo que sea ensamblador patolinec, te recominedo que lo programes en PIC Basic, sino puedes yo te puedo suministrar los codigos necesarios para utilizar el DS1307 pero en ensamblador.

Saludos
Título: RE: ayuda con el ds1307
Publicado por: vszener en 27 de Noviembre de 2005, 10:58:00
¿para que compilador es? Giño
Título: RE: ayuda con el ds1307
Publicado por: maunix en 28 de Noviembre de 2005, 04:42:00
Escrito originalmente por vszener
¿para que compilador es? Giño


Es código del C18 del Microchip.