hi mic,

habe nun mit der servoansteuerung2 experimentiert, habe jetzt glaube ich verstanden wie die einzelnen positionen am servo mittels sleep bestimmt werden, was mir noch fehlt ist die antwort auf´s warum (siehe fragen im code):
Code:
// Servoansteuerung2: Wir erzeugen zwei Impulse im Wechsel            10.1.2010 mic 
// sleep(1) verzögert ca. 0,1ms, 50 Impulse dauern ca. 1 Sekunde 
// Servo an SDA (PC1) (XBUS Pin 12) 

#include "RP6RobotBaseLib.h" 

uint8_t c; // allgemeine 8-Bit-Variable (ein Char) 

int main(void) 
{ 
   initRobotBase(); 

   DDRC |= SDA; 
   PORTC &= ~SDA; 
    
   while(1) 
   { 
      for(c=0; c<50; c++)  //50 = 50 Impulse senden, das dauert ca. 1 Sekunde 
      { 
         PORTC |= SDA;      // Impulsstart 
         sleep(1);         // 1 = 0.1ms warten = Servoposition 1 
         PORTC &= ~SDA;    // Impulsende 
         sleep(150);         //150ms warten 
      } 
      /* die for/++ schleife wird 50* durchlaufen, d.h. das signal wird 50* in längen von 0,1sec und zwischenpausen von 150ms abgegeben
      sleep(1) bestimmt die äußerste linke position am servo - warum eigentlich? ist das so irgendwo festgelegt? die äußerste linke position am servo müsste dem potiwert=0 entsprechen, oder? gibt es einen zusammenhang mit sleep(1)?*/
      .
      .
      .
      .
      .
      
      for(c=0; c<50; c++) 
      { 
         PORTC |= SDA; 
         sleep(30);         //30 = 3ms warten = Servoposition 2 
         PORTC &= ~SDA; 
         sleep(150);    
      }
      /* die for/++ schleife wird 50* durchlaufen, d.h. das signal wird 50* in längen von 0,1sec und zwischenpausen von 150ms abgegeben,
      sleep(30) bestimmt die äußerste rechte position am servo......*/
      .
      .
      .
      .
      .
      
   } 
   return(0); // wird nie erreicht 
}