Дааа затупил я немного...
(2 AVR)Не все могут похвастаться ясностью ума в 4 часа утра
(2 Александр)Спасибо, и вопрос в догонку:
- Код: Выделить всё
#define SET_B(x) |= (1<<x) //Спасибо AVR123 :)
#define CLR_B(x) &=~(1<<x) //Спасибо AVR123 :)
const int period = 30800; //period = 20 ms
int N=1838;//neutral servo = 1.5 ms
void Pos(int servo,int angle)
{
N=angle;
PORTB SET_B(servo);
delaysa(N);
PORTB CLR_B(servo);
delaysa(period);
}
int main()
{
int s,angle,a,b,c,d;
USART_Init(23);
init_devices();
while(1){
s=USART_Receive();
a=USART_Receive();
b=USART_Receive();
c=USART_Receive();
d=USART_Receive();
//delaysa(500);
angle=a*1000+b*100+c*10+d;
Pos(2,2100);
Pos(1,100);
Pos(s,angle);
}
return(0);
}
Pos - подпрограмма управлением сервами (если кто не догадался
)
Вопрос такой : почему Pos(1,1000) - работает
а Pos(s,angle) не пашет.
Если-бы я писал этот код в Visual Studio или там Borland C++ builder
я бы поставил watch на "S" и "ANGLE", но так как у меня WINAVR и
PROTEUS,отладка по watch или брякам мне только снится
P.S: — Папа, папа, а правда говорят, что от ICQ, чатов и ЖЖ люди тупеют? — Гыы, сына, LOL