Wenn ich jetzt nur Basic könnte...
Hab mal was wildes hässliches zusammengehackt... :/
LEIDER IN C
und auch nicht unbedingt funktionstüchtig...
Aber ich denke, solange du nur immer die Taster überprüfst und dir die Richtung merkst, in die es gerade zählen soll (hier hab ich das add1 und add2 genannt und später einfach zum Lauflichtwert dazugezählt), sollte es gleichzeitig funktionieren... einfach keine 200ms warten, sondern einen zähler runter- bzw hochzählen lassen und dann die nächste led hinzuschalten.
Wahrscheinlich blamiere ich mich mit dem Stück Code total, weil wer rausfindet, dass ich nen Denkfehler drinhab... War auch nur schnell zusammengeschrieben... Hoffe, dass es die Idee vermittelt (und dass die Idee nicht falsch ist)
Code:
unsigned char wait1 = 0;
unsigned char wait2 = 0;
char add1 	= 0;
char add2 	= 0;
unsigned char ll1   = 0;
unsigned char ll2   = 0;
unsigned char in1   = 0;
	//----------
while (1)
{
	in1 = PINA; // eingänge einlesen
	//----------	
	if (in1 == 1) // taster 1 gedrückt
	{
		if (ll1 == 0) // lauflicht leer?
			add1 = 1; // vorwärtslauf
		else if (ll1 == 13) // lauflicht voll?
			add1 = -1; //rückwärtslauf
		// ansonsten passiert einfach nix
	}
	if (in1 == 2) // taster 2 gedrückt 
	{
		if (ll2 == 0) // lauflicht leer?
			add2 = 1;
		else if (ll2 == 13) // lauflicht voll?
			add2 = -1;
		// ansonsten passiert einfach nix
	}
	//----------
	if (add1 != 0) // wenn das lauflicht grad mal läuft
	{
		if (wait1 == 0) // 200 ms sind rum oder is die erste LED... 
		{
			ll1 = ll1 + add1; // lauflicht 1 erhöhen/verringern
			wait1 = 200;			// wieder von vorn zählen
		}
		wait1--; // zähler verringern, eine millisek. ist rum...
	}
	if (add2 != 0) // wenn das lauflicht grad mal läuft
	{
		if (wait2 == 0) 
		{
			ll2 = ll2 + add2; // lauflicht 2 erhöhen/verringern
			wait2 = 200;			// wieder von vorn zählen
		}
		wait2--; 
	}
	//----------
	wait (1 ms);
	if ((ll1 == 0) || (ll1 == 13)) // wenn endstellung erreicht, dann nix mehr machen...
	{ 
		wait1 = 0;
		add1  = 0;
	}
	if ((ll2 == 0) || (ll2 == 13)) // wenn endstellung erreicht, dann nix mehr machen...
	{ 
		wait2 = 0;
		add2  = 0;
	}
	//----------
  // jetzt hier einfach mal die LEDs setzen. Status is in ll1 und ll2 drin. 
  // also einfach so viele Ausgänge auf 1 setzen, wie der Wert drin is...
}