Hi Sprinter,

danke für deine Antwort, eine Antwort kommt so spät weil ich etwas arg im stress war die letzten Tage, doch jetzt hab ich mich damit mal wieder beschäftigt.
Habs jetzt erstmal soweit geschafft das überhaupt schon mal was flakert, kann ja den Code hier mal posten, auf das ihr mir vielleicht noch etwas unter die arme greifen könn/würdet wie auch immer.
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

 

int main(void)
{

int T1,T2;


	DDRB &= ~(1<<PB0);
	PORTB &= ~(1<<PB0);
	DDRD = 0xff; //für die Ausgabe über LEDs
	PORTD = 0xff;

	while(1) 
	{
				//ACSR &= ~(1<<ACIC);
			    //Zähler starten ohne vorteiler
				TCCR1B = 0;
				TCCR1B |= (1<<CS10);  
			    TCCR1B |= (1<<ICES1);
				 
				TCCR1B |= (1<<ICNC1);			   
				sei();
			    TIMSK = (1<<TICIE1);  //Interrupt für ICP
			    sei();  //einschalten für erste messung
			    //nach der ersten flanke wird der timer gestartet
			    //nach der zweiten Flanke ist die Periodendauer
			                //ermittelt
			    //es wird der gespeicherte wert aus dem ICR1
			                //register zur berechnung verwendet
  				
			   	while(TIFR & (1<<ICF1));
			    TCCR1B = 0;  //Zähler stoppen
				TCNT1= 0;
				
				
				T1=T2=0;
				T1 =  ICR1;
				T2 =  ICR1H;  
			    
				TIFR &= ~(1<<ICF1);//	oder das hier beides
			    TIMSK = 0;			// nach unten
		

		if(T1>>0 & 0x01)
			PORTD &=  ~(1<<PD0);
		if(T1>>1 & 0x01)
			PORTD &=  ~(1<<PD1);
		if(T1>>2 & 0x01)
			PORTD &=  ~(1<<PD2);
		if(T1>>3 & 0x01)
			PORTD &=  ~(1<<PD3);
		if(T1>>4 & 0x01)
			PORTD &=  ~(1<<PD4);
		if(T1>>5 & 0x01)
			PORTD &=  ~(1<<PD5);
		if(T1>>6 & 0x01)
			PORTD &=  ~(1<<PD6);
		if(T1>>7 & 0x01)
			PORTD &=  ~(1<<PD7);
			
		}
}
mfG der Grave