Servus,

ich hab gerade ein Lauflicht geschrieben. Geht auch wunderbar. Aber es läuft immer nur in einer Richtung. Wenn ich nur "vorwärts" (siehe Code-Kommentar) laufen lasse, geht es. Wenn ich nur "rückwärts" laufen lasse, ebenso. Wenn ich erst vorwärts, dann rückwärts laufen lassen will, läuft es nur rückwärts. Warum?

Code:
#include <avr/io.h>
#ifndef F_CPU
#define F_CPU 16000000     /* Quarz mit 16 Mhz  */
#endif
#include <util/delay.h>

void set(int PCX) {
	DDRC = (1<<PCX);
	PORTC ^= (1 <<PCX);
}

void wait() {
	int i;
	for (i=1; i<=48; i++) {         
		_delay_ms(62.5);
	}
}
 
int main(void)
{
    int PCX[8] = {PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7};
 	
	int i;
		
	# Vorwärts
	for (i=0; i<=7; i++) {
		set(PCX[i]);
		wait();
	}

	# Rückwärts
	for (i=7; i>=0; i--) {
		set(PCX[i]);
		wait();
	}

    return 0;
}
Danke.