Keine garantie... und auch nicht fertig. Weil ich wenig zeit habe. Ist aber der (ein) richtige weg zur Rome.
Hier mache ich nur einer loop wo beiden servo's unabhangig an oder aus gepulst werden. Jeder wiederholung geht tickzahler auf 0 und startet es neue servo pulsen.
Code:
...
unsigned int minimum_puls=18;
unsigned int winkel1, winkel2; /* 0-36 */
unsigned int pulselange1, pulslange2;
unsigend int wiederholung_zahl=720; /* anzahl ticks servo puls wiederholung, abhangig von Sleep-taktfrequenz */
unsigned char servo1=0, servo2=0; /* puls status: hoch oder niedrig */
unsigned int tickzahler=0; /* inkrementiert jede Sleep tick */
/* Init(); und so ... */
pulselange1=winkel1+minimum_puls;
pulselange2=winkel2+minimum_puls;
Backleds(OFF,OFF);
while (1) {
/* irgendwie ein neue wert fur winkel1 und winkel2 bekommen, dammit es kein schlau wird, muss aber nicht */
/* winkel1=etwas_neues; */
/* winkel2=etwas_neues; */
/* pulslangen auch erneuen */
pulselange1=winkel1+minimum_puls;
pulselange2=winkel2+minimum_puls;
if (tickzahler<=pulslange1) {servo1=1;} else {servo1=0;}
if (tickzahler<=pulslange2) {servo2=1;} else {servo2=0;}
if (tickzahler>= wiederholung_zahl)
{tickzahler=0;}
else { tickzahler++; }
Sleep(1); /* minimale resolution der pulslange */
BackLED(servo1,servo2);
} /* ende der servo puls
...
Lesezeichen