Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de datos
Almacenamiento de datos
En muchas aplicaciones es necesario
almacenar datos de forma que estos no se
pierdan si quitamos la alimentación al módulo
void* direcciones[4];
unsigned int longitudes[4]
UserBlock
direcciones[0]=&i;
direcciones[1]=&j;
direcciones[2]=&c;
direcciones[3]=&f;
longitudes[0]=2;
longitudes[1]=sizeof(j);
longitudes[2]=sizeof(c);
longitudes[3]=sizeof(f);
UserBlock
readUserBlockArray(direcciones,
longitudes, 4, 0);
writeUserBlockArray(0,direcciones,
longitudes, 4);
Almacenamiento en Flash
Algunos módulos disponen de 1Mbyte de
Flash serie.
Se utiliza para guardar datos: medidas,
gráficos para el webserver, etc..
Almacenamiento en Flash
ATMEL AT45DB041
Almacenamiento en Flash
#define SFLASH_DEBUG
#use "sflash.lib"
Almacenamiento en Flash
INICIAR LA CONEXIÓN CON LA MEMORIA
sfspi_init();
if(sf_init())
{
printf("Flash init failed\n");
exit(-1);
}
Almacenamiento en Flash
INICIAR LA CONEXIÓN CON LA MEMORIA
sfspi_init();
if(sf_init())
{
printf("Flash init failed\n");
exit(-1);
} else
{
printf("Flash init OK\n");
printf("# of blocks: %d\n", sf_blocks); //******
printf("size of block: %d\n", sf_blocksize);//******
}
Almacenamiento en Flash
PRINCIPALES FUNCIONES
sf_pageToRAM
sf_RAMToPage
sf_readPage
sf_readRAM
sf_writePage
sf_writeRAM
Almacenamiento en Flash
EJEMPLO ESCRITURA
for(i = 0;i < sf_blocksize;i++)
{
flash_buf[i] = 0;
}
sf_writeRAM(flash_buf, 0, sf_blocksize);
sf_RAMToPage(pagenum);
Almacenamiento en Flash
EJEMPLO LECTURA
sf_pageToRAM(pagenum);
sf_readRAM(flash_buf, 0, sf_blocksize);