Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/12/2010 #1


Leer eeprom con pic18 y spi
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:
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
29/12/2010 #2


Hola, que compilador estas usando ?
29/12/2010 #3


c18 de microchip.
Un saludo
29/12/2010 #4


Hola, proba este codigo, a mi me funciona perfectamente.
dir_h y dir_l son las direccion de memoria parte alta y baja


unsigned char leer_dato_mem(char dir_h,char dir_l)
{
CS_MEMO=0; // Selec. la memoria
WriteSPI(0x03); // Envio comando de lectura
WriteSPI(dir_h); // Envio direccion alta de memoria
WriteSPI(dir_l); // Envio direccion baja de memoria
dato_leido = ReadSPI(); // Dato leido
CS_MEMO=1; // Deselec. la memoria
return (dato_leido); // Retorno con el dato leido
}
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.