Hi,

Danke für deine Antwort! Aber auch wenn ich was in die For-Schleife schreibe passiert nix anderes! Hab den Code mal bisschen umgeschrieben! Vielleicht hast du ja noch ein paar Ideen!

Code:
#include <avr/io.h> 
#include <avr/signal.h> 
#include <avr/interrupt.h> 
#include <inttypes.h> 
#include <math.h> 
#include <avr/delay.h>

volatile unsigned char servowert; 
volatile unsigned char puls; 
volatile unsigned char zaehler; 

int set_servo(volatile uint8_t pos) 
   { 
   servowert = (pos/180) + 1; 

   } 


    
int main(void) 
   { 
   zaehler = 0; 
   sei(); 
	DDRB = (1<<PB1) | (0<<PB0); 
   DDRD |= (1<<PD7); 
   PORTD |= (1<<PD7); 
   //Timer0 übernimmt die Highphase 
   //muss 1ms sein also 25 Takte bei einem Prescaler von 64 
   puls = 25; 
   TCCR2 = (1<<CS22) | (1<<WGM21) |(1<<COM21) |(1<<COM20); 
   TCNT2 = 6; 
   TIMSK = (1<<TOIE2);  
 while(1) { 
PORTB = 0xFD;
_delay_ms(100000);
PORTB = 0xFE;
_delay_ms(100000);
   } 
   } 
    
SIGNAL(SIG_OVERFLOW2) 
   { 

   switch(zaehler) {
        case 0:          
    //     case 1:         das da aktivieren für 2 mS Servo 
      PORTD |= (1<<PD7);
      zaehler++;
	  break;  
	     case 2: 
      //PORTD &= ~(0<<PD7);
	  PORTD &= ~(1<<PD7);       
      zaehler++;
      break; 
         case 20:        
      zaehler = 0;
	  PORTD |= (1<<PD7);
	  break;
	     case 21:        
      zaehler = 0;
	  PORTD &= ~(1<<PD7);            
      break; 
          
TCNT2 = 6;

   }
   
   }
gruß matic