byte Find()
{
byte Found;
Found = FALSE; // init to not found
for (Ind=0; Ind < (EL_SIZE * MAX_USER); Ind+=EL_SIZE)
{
FCode = r[Ind][0];
FCode = (Dato>>8);
// check if 1111xxxx
if ( (FCode & 0xf0) == 0xf0) //高8位
continue; // empty
if (IDHi != (Dato & 0xff)) //低8位Buffer[4] //S/N LSB
continue; // fails match
Dato = Read93LC46(Ind+1);
if ( ( (Dato & 0xff) == IDLo) && (((Dato>>8)& 0xff) == IDMi)) //IDMi Buffer[5] //S/N IDHi Buffer[6] //S/N MSB
{
Found = TRUE; // match
break;
}
} // for
if (Found == TRUE)
{
EEADR++;
Dato = Read93LC46(EEADR);
EHop = Dato;
EEADR++;
Dato = Read93LC46(EEADR);
ETemp= Dato;
}
return Found;
}
将以下这段去掉就会出现Looping around MACH_ALLOC
if (Found == TRUE)
{
EEADR++;
Dato = Read93LC46(EEADR);
EHop = Dato;
EEADR++;
Dato = Read93LC46(EEADR);
ETemp= Dato;
}
|