roboforum.ruТехнический форум по робототехнике. |
|
|
|
Реклама | ||||
|
|
|||
Lirzman писал(а):Если так то можно сразу переходить к раззаботке управленя 8-ю сервами
aesok писал(а):Давай вначале с одной разберемся
Реклама | ||||
|
|
|||
Lirzman писал(а):Держи
aesok писал(а):сделай всетаки 'сur_state' локальной.
aesok писал(а):Размер масива равен 4, а символов ты присваиваеш 5: первый - [0], [1], [2], [3], пятый- [4]. Размер масива должен быть 5.
void Servo_Control()
{char s;
int angle;
char szInput [5];
s=USART_Receive();
s=s-0x31;
szInput[0] = USART_Receive();
szInput[1] = USART_Receive();
szInput[2] = USART_Receive();
szInput[3] = USART_Receive();
szInput[4] = USART_Receive();
szInput[5] = 0; // Строка должна заканчиваться 0
angle = atoi (szInput);
Pos(s,angle);
}
aesok писал(а):SIGNAL(SIG_OVERFLOW1)
TCNT1 = period; => TCNT1 = period - gangle;
Зачем я уже писал. Не 0 должен быть 20 мс а 0 +1!
Lirzman писал(а):
Исправил, получилось:
- Код: Выделить всё • Развернуть
void Servo_Control()
{char s;
int angle;
char szInput [5];
s=USART_Receive();
s=s-0x31;
szInput[0] = USART_Receive();
szInput[1] = USART_Receive();
szInput[2] = USART_Receive();
szInput[3] = USART_Receive();
szInput[4] = USART_Receive();
szInput[5] = 0; // Строка должна заканчиваться 0
angle = atoi (szInput);
Pos(s,angle);
}
aesok писал(а):SIGNAL(SIG_OVERFLOW1)
TCNT1 = period; => TCNT1 = period - gangle;
Зачем я уже писал. Не 0 должен быть 20 мс а 0 +1!
А вот с этой ошибкой возникла небольшая проблема.
Как мне их складывать если пауза отсчитывается в тиках таймера=тиках процессора(делитель=1)? Следовательно чем больше число тем меньше задержка, понимаете?
60000 это управляющий импульс а 1000 это - пауза в 20мс.
Lirzman писал(а):aesok писал(а):SIGNAL(SIG_OVERFLOW1)
TCNT1 = period; => TCNT1 = period - gangle;
Зачем я уже писал. Не 0 должен быть 20 мс а 0 +1!
А вот с этой ошибкой возникла небольшая проблема.
Как мне их складывать если пауза отсчитывается в тиках таймера=тиках процессора(делитель=1)? Следовательно чем больше число тем меньше задержка, понимаете?
60000 это управляющий импульс а 1000 это - пауза в 20мс.
aesok писал(а):Сервомашинка будет отлично работать и с 17 мс.
avr123.nm.ru писал(а):по-моему atoi коротковат будет, возможно нужен atol ?
aesok писал(а):char szInput [5]; - Место под 5 символов
Сейчас этот форум просматривают: Bing [Bot] и гости: 11