I have a too strange behaviour with the following code: while (HS_Values_X[uC++] < Conversion_Values[0]); HallAngle[0] = HS_ANGLE_X[uC-1]; In fact, by following the code step by step with the debugger uC variable increase three by three any step (and not by one). I changed the firwmare: while (HS_Values_X[uC] < Conversion_Values[0]) { uC++; } HallAngle[0] = HS_ANGLE_X[uC-1]; but I obtain the same strange behaviour. Why? Some one could help me!?! I have set the compiler in order to minimize the code size. Thanks