Die Zeile "PORTD=(PIND&((1<<T1)|(1<<T2)))<<(LED1-T1);" könnte man etwa so auseinander nehmen:
Code:
unsigned char temp;
temp=PIND; //temp hat jetzt den Wert von PIND
temp=temp&((1<<T1)|(1<<T2)); //alle bits in temp, ausser T1 und T2 sind auf 0
temp=temp<<(LED1-T1); //verschiebt den Inhalt vom temp um so viele Stellen nach
//links, wie LED1 von T1 entfernt ist. In Deinem Fall 3. Der Zustand von T1 ist
//jetzt im 5ten bit, der Zustand von T2 in 6ten. Also genau da, wo auch die
//beiden LEDs sind
PORTD=temp; //Jetzt hat LED1 den Zustand von T1 und LED2 den Zustand von T2
"PORTD=(PIND&((1<<T1)|(1<<T2)))<<(LED1-T1);" ist einfach nur eine Zusammenfassung davon.
MfG Mark
Lesezeichen