so, nach fast schon stundenlangem durchforsten und durchdenken von dirks servo_libs für die M32 und dem dazugehörigem demoprogramm werfen sich bei mir einige fragen auf:



Code:
intcounter = RIGHT_TOUCH;
intcounter = 0;

.....
ISR (TIMER1_COMPA_vect)
{
   intcounter++;
....
was hat es mit dem intcounter auf sich?

wenn ich die Lib richtig verstehe wird intcounter jedes mal im pulse_Servo der wert von RIGHT_TOUCH (also 162) zugewiesen und danach am ende von pulse_Servo bzw. sofort danach der wert 0.
wozu wird das gemacht?





Code:
impulselength1 = LEFT_TOUCH + servo1_position;
....

ISR (TIMER1_COMPA_vect)
{
   intcounter++;
   if (intcounter == impulselength1) {SERVO1_PULSE_OFF;}
was geschieht genau hier?

wie ich es verstehe, wird im pulse_servo der ausgewählte servoport auf high geschaltet und gleichzeitig wird die impulselength aus der Summe LEFT_TOUCH (71) und servox_position; berechnet.
der wert von servo1_position ändert sich ja in dirks demoprogramm ständig, somit ja auch die impulselength1.
wenn ich dirks demoprogramm richtig verstehe, geht der wert von servo1_position stehts von [0...163].
somit der wert von impulselength1 von [71....234]
Richtig?

bei der ISR habe ich berechnet, dass sie alle 0,19ms ausgelöst wird.
Richtig?
Das würde bedeuten, dass im Abstand von zwei pulse_servo- aufrufen die ISR ca. 100 mal ausgeführt wird.
beginnt der intcounter++, jetzt wenn wir mal das demoprogramm zugrunde legen und nur servo1 betrachten, in der ISR bei 0 aufwärts zu zählen oder beim wert von RIGHT_TOUCH?

bei welchem wert ist intcounter==impulselength1 und somit SERVO1_PULSE_OFF?
wie lange in ms ist dann der high impulse für servo1 in diesem demoprogramm.

die restlichen teile der Lib bzw. des programms hab ich im großen und ganzen verstanden.

ich weiß das sind jetzt eine menge fragen, nur bin ich noch nicht so C und vor allem Servo erfahren und denke, dass dirks servolib sehr gut zum ansteuern meiner 5 Servos an meinem roboterarm eignet.
drum will ich alles genau wissen.

danke schon mal im voraus für eure mühen.

mfg andi