Forum: Programmieren allgemein
by Basilikum,
27. Apr 2008
jep, sicher...
ich konnte es nicht lassen - siehe Attachment... :-)
Forum: Programmieren allgemein
by Basilikum,
27. Apr 2008
Deine Lösung aus #3 wird schon funktionieren, allerdings... :-)
... beginnt der Balken auf der anderen Seite
... werden nie alle LEDs ausgeschalten sein
Forum: Programmieren allgemein
by Basilikum,
27. Apr 2008
da hast Du natürlich recht...
meine vorherige Lösung in Kurz: :-)
void show_visual_current(unsigned int ad_res)
{
P2 = (P2 & 0x0FF00) | (0x00FF >> (8 - ((ad_res + 64) >> 7)));
}
Forum: Programmieren allgemein
by Basilikum,
27. Apr 2008
genau
kleine Optimierung:
void show_visual_current(unsigned int ad_res)
{
if (ad_res < 64)
{
P2 = (P2 & 0x0FF00);
}
else if (ad_res >= 960) // 1024 - 64
Forum: Programmieren allgemein
by Basilikum,
27. Apr 2008
(ad_res / 128) == (ad_res >> 7)
(128 ist ja praktischerweise eine 2er-Potenz :-))
btw: ich denke, Deine "Formel" kann nicht funktionieren - sobald die Leds einmal an sind, werden die nie mehr ausgeschalten werden (OR), zumal es vermutlich noch ein Syntax-Fehler hat (|=)
mein Vorschlag:
void show_visual_current(unsigned int ad_res)
{
if (ad_res > 0)
P2 = (P2 & 0x0FF00) | (0x00FF...