Hallo,
ich bastle seit Tagen an einem Problem:
Ziel ist es ein Servosignal, momentan von einem ServoTester später 
funkempfänger, auszuwerten.
Hardware: Atmega328 auf 20MHz. Intialisiert sind:
Timer1 (16bit) - normal mode, no prescaling d.h. overflow bei ca 3,2ms
INT0 - rising edge (hier liegt das signal an)
Das ist mein code. alle variablen sind volatile und rising ist mit 1 
initialisiert.
| 1 | ISR(INT0_vect)
 | 
| 2 | {
 | 
| 3 |   if(rising == 1) //also rising edge
 | 
| 4 |   {    
 | 
| 5 |   start =  ((uint16_t)TCNT1H << 8) | TCNT1L; //Timer auslesen
 | 
| 6 | 
 | 
| 7 |   rising = 0;
 | 
| 8 |   EICRA &= ~(1 << ISC00); //jetzt auf fallende flanke triggern
 | 
| 9 |   }
 | 
| 10 |   else
 | 
| 11 |   {
 | 
| 12 |   end = ((uint16_t)TCNT1H << 8) | TCNT1L; //Timer auslesen
 | 
| 13 |   rcsig = end - start;
 | 
| 14 | 
 | 
| 15 |   rising = 1;
 | 
| 16 |   EICRA |= (1 << ISC00);
 | 
| 17 |   }
 | 
| 18 | }
 | 
in der main teste ich folgendermaßen:
| 1 |     while(1)
 | 
| 2 |     {   
 | 
| 3 |     
 | 
| 4 |   if (rcsig > 30000) //30000 entspricht 1,5ms also genau hälfte
 | 
| 5 |   color[0] = 255;
 | 
| 6 |   else
 | 
| 7 |   color[0] = 0;
 | 
| 8 | 
 | 
| 9 |     }
 | 
leider leuchtet die led garnicht. ich hab jetzt schon verschiedenes 
ausprobiert aber weiß mittlerweile nicht mehr weiter.
vielleicht könnt ihr mir helfen!
viele Grüße Alex