orbi
05.06.2006, 02:20
Schönen guten Tag,
der Variablen-Watch, den mein AVR Studio Debugger ausgibt, scheint mir sehr konfus:
uint16_t translateToMa(uint8_t byte)
{
uint8_t byte_inverse=0,i=0;
uint16_t result=0;
byte_inverse = ~byte;
for(i=0;i!=7;i++)
{
if (byte&_BV(i))result |= _BV(i*2);
if (byte_inverse&_BV(i))result |= _BV((i*2)+1);
}
return result;
}
Wenn ich über die Schleife steppe, verändert sich byte(!). Ich kann mir das beim besten Willen nicht erklären?!
der Variablen-Watch, den mein AVR Studio Debugger ausgibt, scheint mir sehr konfus:
uint16_t translateToMa(uint8_t byte)
{
uint8_t byte_inverse=0,i=0;
uint16_t result=0;
byte_inverse = ~byte;
for(i=0;i!=7;i++)
{
if (byte&_BV(i))result |= _BV(i*2);
if (byte_inverse&_BV(i))result |= _BV((i*2)+1);
}
return result;
}
Wenn ich über die Schleife steppe, verändert sich byte(!). Ich kann mir das beim besten Willen nicht erklären?!