Ошибка выполнения кода(мигание L светодиодом)
- Войдите на сайт для отправки комментариев
Втр, 03/11/2015 - 21:51
Сделал свой код для управления сервой(ибо другие очень уж медленные), но при выполнении происходит какая то ошибка. Что может быть причиной, если компилятор ничего не показал?
Вот код:
int timer = 0; int startPin = 2; int servos[4] = {500,500,500,500}; void setup() { for(int i = 0; i < sizeof(servos); i++) pinMode(i+startPin, OUTPUT); } void loop() { if(millis() > timer + 20) { for(int i = 0; i < sizeof(servos); i++) digitalWrite(i+startPin, HIGH); int list[sizeof(servos)]; for(int i = 0; i < sizeof(list); i++) { for(int j = 0; j < sizeof(servos); j++) { if(i==0) { if(j==0) list[i] = servos[j]; else if(servos[j] < list[i]) list[i] = servos[j]; } else { if(j==0) list[i] = servos[j]; else if(servos[j] < list[i] && servos[j] > list[i-1]) list[i] = servos[j]; } } } for(int i = 0; i < sizeof(list); i++) { if(i==0) delayMicroseconds(servos[list[i]]); else delayMicroseconds(servos[list[i]] - servos[list[i-1]]); digitalWrite(list[i]+startPin, LOW); } timer = millis(); } }
Переменную timer объявите как
unsigned
long
, а не как int.