hola a todos, estoy intentando hacer un datalogger que me almacene temperaturas durante el tiempo que yo quiera y despues pueda descargarlas al pc, para ello utilizo un pic18f2550 y una eeprom 25AA512. ESta memoria funciona por spi, y el problema que tengo es que no se como leerla, es decir, no se donde se almacena el dato ni cuando.
el codigo que iutilizo para leer es este:
donde almacena el dato el pic cuando lo recibe¿? y que flag me avisa que el dato ya está listo?
gracias por adelantado.
un saludo
el codigo que iutilizo para leer es este:
Código:
char leer_memoria (int direccion){
char dato;
CS=0; //HABILITAMOS SPI
SSPBUF=read; //ENVIO EL COMANDO DE CONFIGURACION
while(PIR1bits.SSPIF==0); //ESPERO A QUE SE MANDE
PIR1bits.SSPIF=0; //PONGO EL FLAG MANUALMENTE A 0 DE NUEVO
SSPBUF=0; //ENVIO PARTE ALTA DIRECCIÓN
while(PIR1bits.SSPIF==0); //ESPERO A QUE SE MANDE
PIR1bits.SSPIF=0; //PONGO EL FLAG MANUALMENTE A 0 DE NUEVO
SSPBUF=direccion; //ENVIO PARTE BAJA DIRECCION
while(PIR1bits.SSPIF==0); //ESPERO A QUE SE MANDE
PIR1bits.SSPIF=0;
// AQUÍ LA MEMORIA DEBE MANDARME EL DATO
while(PIR1bits.SSPIF==0); <---- AQUI SE QUEDA, NO PONE EL FLAG A 1
dato=SSPBUF; //ALMACENO EL VALOR EN dato
PIR1bits.SSPIF=0;
CS=1;
return(dato);
}
donde almacena el dato el pic cuando lo recibe¿? y que flag me avisa que el dato ya está listo?
gracias por adelantado.
un saludo