unsigned char val1...
heisst die Variable jetzt VAL1 oder VALL oder VA11?
kleines L, also l, mit 1 zu kombinieren kann schnell zu Verwirrungen
führen.
Vor allen Dingen dann, wenn man schon 3 Stunden einen Fehler sucht.
Das mal am Rande.
Ist doch ganz einfach. Du legst das auszugebende Bitmuster in ein Array.
unsigned char BitmusterA[] = {
0xb00000001,
0xb00000010,
0xb00000100,
usw.
};
Hier ist auch die sonst verpönte 0xb-Schreibweise erlaubt. Rück das
vernünftig ein, dann bleibt das übersichtlich.
unsigned char BitmusterB[] = {
0xb00010000,
0xb00100000,
0xb01000000,
usw.
};
LED_PORT = BitmusterA[Leds1];
LED_PORT |= BitmusterB[Leds2];
Leds2 darf natürlich nicht wie oben val2 von 4 bis 7 zählen, ist ohnehin
Unsinn, sondern wie Leds1 von 0 bis 3.
So einfach geht es natürlich nur, wenn alle LEDs auf dem selben
Controllerport liegen. Also alle z.B auf PORTB.
mfg.