Gast
#768461
Hallo zusammen,
ich habe mal wieder eine OptimierungsSache:
tInt8 ReadBatteryStatus (void)
{
tIntU8 Data [3];
nLastBatteryStatus = SW_UNKNOWN_ERROR;
Data [0] = BATTERY_STATUS;
tInt8 Ret = TWI_ReadWord (TWI_SLA_ADDR, Data, 1);
if (Ret == TWI_NO_ERROR)
{
nLastBatteryStatus = Data [1];
nLastBatteryStatus |= Data [2] << 8;
}
return ((tInt8)Ret);
}
tSMBusResult BatteryStatusOk (void)
{
tInt8 Ret = ReadBatteryStatus ();
//+++++++++++++++++++++++++++++++++
if (Ret == ((tInt8)TWI_NO_ERROR))
{
if (chk_bit (nLastBatteryStatus, SW_OK) != 0)
return idSMBusResOk;
}
//+++++++++++++++++++++++++++++++++
return idSMBusResErr;
}
Der Code zw. den //++++ wird nir aufgerufen. Habe jetzt schon alle
optimierungsvarianten durch.
Ich haenge mal das lls dran.
Da ich in asm nur ein gefährliches Halbwissen habe, könnte ich jetzt nur
mit 50%tigen Sicherheit sagen, dass der Code wegoptimiert wird.
Aber warum?
Danke
Alex