Tengo una EEPROM y estoy almacenando datos en ella, desde la dirección 0x00
a 0xff
. Tengo que escanear la EEPROM regularmente en busca de valores que no sean cero.
por ejemplo:
address 0x00 0x01 0x02 0x03 0x04......0x0A 0x0B 0x0C.........0xFF
values 0 0 1 1 0 0 1 0 0
Si hago una función de escaneo para encontrar la primera dirección de valor, puedo hacerlo. Pero, ¿cómo omitiré la primera dirección detectada ( 0x02
) y encontraré la siguiente dirección en la segunda llamada de la función?
Nota : si encontramos más de un 1 consecutivo, se toma la primera dirección ( 0x02
).
Estaré extremadamente feliz si proporcionas alguna técnica para abordar esto.
int scaneeprom(void)
{ static unsigned int x,
static unsigned int counter;
for(i=0+counter; i<255;i++)
{
while((eepromread(i++)!)==0)
{
x=i;
counter++;
}
return(i);
}
Se supone que esto debe escanear desde 0x04-0xff en la segunda llamada.
Apreciaría sus comentarios que rectificarán mi error.