cudi писал(а):Сначало серва поворачивается водну сторону на 1500мс, а обратно на 1000мс уже дрыгается ужасно...
Вы хоть поняли, что написали? По вашей программе серва и должна дрыгаться.
Cudi, дарю, пользуйтесь, раз самим искать и думать лениво.
- Код: Выделить всё • Развернуть
unsigned int i;
PORTA = 0x00; DDRA = 0xFF;
while(1)
{
// 1 секунда удержания 1го крайнего положения
for(i=0;i<50;i++)
{
PORTA = 0xFF;
delay_us(1000); // Задержка, обеспечивающая 1 положение сервопривода
PORTA = 0x00;
delay_ms(18); // Задержка, обеспечивающая примерно 50 импульсов в сек
}
// 1 секунда удержания 2го крайнего положения
for(i=0;i<50;i++)
{
PORTA = 0xFF;
delay_us(2000); // Задержка, обеспечивающая 2 положение сервопривода
PORTA = 0x00;
delay_ms(18); // Задержка, обеспечивающая примерно 50 импульсов в сек
}
}
Добавлено спустя 6 минут 46 секунд:cudi писал(а):какую электронику используешь в роботе своём? и можно схему, очень уж интересна схема подключения твоих устройств, а то вроде ты используешь 18 серв, это вроде как огромная нагрузка...
В теме все написано. Никакой системы защиты от помех я не использую. Питание, как я уде писал подается с 4-х DC-DC преобразователей. МК питается отдельно, остальные сервы равномерно распределены по преобразователям.
Схема подключения - сервы напрямую к МК, вот и вся схема.
Скоро грядет существенная переделка паучка, я почти закончил дополнительные модули, которые мне нужны для отладки, плюс еще коммерческую задачу по МК подсунули, отвлекся на нее.