Оцените мои достижения!!!
Я слегка подправил формулу:
TCNT1=1+(60000/10)+(61000/10)+(59000/10)...;
Получается ~18000 - то что надо.
roboforum.ruТехнический форум по робототехнике. |
|
|
Lirzman писал(а):Фу!!!
Тока старая проблема вылезла с накоплением ошибки от сервы к серве.
Какая величина ошибки? Лучше а тактах контроллера.
Скорее всего это изза того что ты выставил ТСNT1 = 27000; нада по формуле
if(cur_servo==3)
{PORTB SET_B(2);
PORTB CLR_B(1);
TCNT1=gangle[2]+2;
cur_servo=4;
}
else
if(cur_servo==4)
{PORTB SET_B(3);
PORTB CLR_B(2);
TCNT1=gangle[3]+9;
cur_servo=5;
}
else
if(cur_servo==5)
{PORTB SET_B(4);
PORTB CLR_B(3);
TCNT1=gangle[4]+16;
cur_servo=6;
}
else
if(cur_servo==6)
{PORTB SET_B(5);
PORTB CLR_B(4);
TCNT1=gangle[5]+23;
cur_servo=7;
}
else
if(cur_servo==7)
{PORTB SET_B(6);
PORTB CLR_B(5);
TCNT1=gangle[6]+30;
cur_servo=8;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22