Zitat von
Matze:
Und du schreibst "7 - ...", damit man nicht mehr invertieren muss, vermute ich.
genau
kleine Optimierung:
Code:
void show_visual_current(unsigned int ad_res)
{
if (ad_res < 64)
{
P2 = (P2 & 0x0FF00);
}
else if (ad_res >= 960) // 1024 - 64
P2 = (P2 & 0x0FF00) | 0x000FF;
}
else
{
P2 = (P2 & 0x0FF00) | (0x00FF >> (7 - ((ad_res - 64) >> 7)));
}
}
bei 128er-Schritten gibt es 8 Eingangszustände (der AD-Wandler wird kaum jemals 1024 liefern), die LEDs unterstützen aber 9 (keine an bis 8 an) => ein Eingangszustand "halbiert" ergibt 9 Eingangszustände