Делаю фракционник, начал настраивать серву.
Неудобно - найти положение можно только перебирая значения положения, каждый раз перемещаясь в меню тест.
Я себе сделал так - при изменении положения, через пару секунд серва едет в выбранную позицию, сама, без перехода в тест.
Очень удобно.
что изменил
добавил в начале скетча
char toAngle[2];
добавил в
ISR(TIMER2_COMPA_vect)
{
// Сброс таймера
,,,,,,,,
NeedGPRS=1;
if (toAngle[0]==1) SetAngle(toAngle[1]);
if (toAngle[0]>0) toAngle[0]--;
}
изменил
// ищем и удаляем строку SetAngle(AngleFractionDist[TekFraction]);
добавляем
toAngle[0]=2;
toAngle[1]=AngleFractionDist[TekFraction];
// ищем и удаляем if (flPopr==1) { AngleFractionDist[nPopr]++; CountKeys=1;}
добавляем
if (flPopr==1) { AngleFractionDist[nPopr]++; toAngle[0]=2; CountKeys=1; toAngle[1]=AngleFractionDist[nPopr]; }
// ищем и удаляем SetAngle(AngleFractionRect[TekFraction]);
добавляем
toAngle[0]=2;
toAngle[1]=AngleFractionRect[TekFraction];
далее аналогично
// if (flPopr==1) { AngleFractionRect[nPopr]++; CountKeys=1;}
if (flPopr==1) { AngleFractionRect[nPopr]++; toAngle[0]=2; CountKeys=1; toAngle[1]=AngleFractionRect[nPopr];}
// if (flPopr==1) { AngleFractionDist[nPopr]--; CountKeys=1;}
if (flPopr==1) {
AngleFractionDist[nPopr]--;
toAngle[0]=2;
toAngle[1]=AngleFractionDist[nPopr];
CountKeys=1;
}
//SetAngle(AngleFractionDist[TekFraction]);
toAngle[0]=2;
toAngle[1]=AngleFractionDist[TekFraction];
// SetAngle(AngleFractionRect[TekFraction]);
toAngle[0]=2;
toAngle[1]=AngleFractionRect[TekFraction];
// if (flPopr==1) { AngleFractionRect[nPopr]--; CountKeys=1;}
if (flPopr==1) { AngleFractionRect[nPopr]--; toAngle[0]=2; CountKeys=1; toAngle[1]=AngleFractionRect[nPopr];}