ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца СЕНТЯБРЬ!
0 Пользователей и 1 Гость просматривают эту тему.
поехала на запад в 5 градусах от сатурна стала дергатся - я понимаю это коррекция так работае
С этим тоже прояснилось - непрерывность достигается уменьшением параметров imStepsXPS и imStepsYPS ... правда при этом соответственно уменьшается макс.скорость перемещения с пульта, что для меня в силу особенностей конструкции нехорошо.
XYxy AzAlt {0.0, 0.0, 0.0, 0.0, 0}; //Текущие и целевые AzAlt
AzAltFromRaDe()RaDeFromAzAlt()
/* case 'z': {if(iTMode==2||iTMode==3) AzAltFromRaDe(1); Serial.print(HexToStr(RaToUL(AzAlt.AtX,ulMaxValue),STROUT,8)); Serial.print(","); //Сохраненный из NexStar протокола Serial.print(HexToStr(RaToUL(AzAlt.AtY,ulMaxValue),STROUT,8)); Serial.print('#'); //запрос текущих азимутальных координат break;} case 'Z': {GetSubStr (); if((strlen(STR1)==8)&&(strlen(STR2)==8)) { Serial.print('#'); if (iTMode==0||iTMode==1||iTMode==2||iTMode==3) //В любом режиме { AzAlt.ToX=ULToRa(StrToHEX(STR1),ulMaxValue); AzAlt.ToY=ULToRa(StrToHEX(STR2),ulMaxValue); if (!bAlignment) {AzAlt.AtX=AzAlt.ToX; AzAlt.AtY=AzAlt.ToY; RaDeFromAzAlt(3); bAlignment=true;} else RaDeFromAzAlt(2); ulLoopTimer= millis(); ulMilisec =millis(); } } break;} */
Скетч использует 21728 байт (70%) памяти устройства. Всего доступно 30720 байт.Глобальные переменные используют 587 байт (28%) динамической памяти, оставляя 1461 байт для локальных переменных. Максимум: 2048 байт.
У вас скорость обмена данными 9600 или 115200?
У меня как-то было, что частый опрос аналоговых входов (на них висит реальный кнопочный пульт РП) "подвешивал" даже esp32. Попробуйте в loop() закоментировать ulCtrlStat=AskControl(), чтобы это оценить. И если понадобится, то подумать над ограничением частоты опроса. Например, при гидировании его программно отключать. Но в этом случае РП не будет работать, придётся использовать ВП.
if(iCtrlEnable>3) //KEYCONTROL { if(iCtrlEnable>7) //Defined Z key { if((iA3<250)){iLastCtrlKey=5; strcat(strcat(strcpy(CSTR,"F"),itoa(iZRate,LCTRL,10)),"-");} // F- if((iA3>=250)&&(iA3<=650)&&(iLastCtrlKey>4)&&(iLastCtrlKey<7)) {InitSTR(CSTR,SubSTRMaxLen);} // Stop F if((iA3>650)){iLastCtrlKey=6; strcat(strcat(strcpy(CSTR,"F"),itoa(iZRate,LCTRL,10)),"+");} // F+ } if((iA4<250)||(iA4>650)) //S+/- { digitalWrite(13, HIGH); //Отображает нажатие клавиши S if(iLastCtrlKey>4) LCTRL[0]='f'; else if(iLastCtrlKey<3) LCTRL[0]='x'; else LCTRL[0]='y'; LCTRL[1]='\0'; if(iA4<250) // S- { if(iLastCtrlKey<5) if(iXYRate>1) iXYRate--; else if(iSMode!=0) {iSModeOLD=iSMode; iSMode=SetSMode(0);} //Mount if(iLastCtrlKey>4) if(iZRate >1) iZRate--; //Focuser } if(iA4>650) // S+ { if( iLastCtrlKey<5) //Mount { if(iXYRate<9) iXYRate++; if((iSMode==0)&&(iSModeOLD>0)) {iSMode=SetSMode(iSModeOLD); ulLoopTimer=millis(); ulMilisec=millis();} // Tracking ON } if( iLastCtrlKey>4) if(iZRate <9) iZRate++; //Focuser } if(LCTRL[0]=='f') itoa(iZRate,LCTRL+1,10); else itoa(iXYRate,LCTRL+1,10); strcat(LCTRL,"#"); Serial.print(LCTRL); LCTRL[0]='\0'; digitalWrite(13, LOW); ulCtrlTimer=millis(); } //S+/- } //KEYCONTROL
if(iAskCounter>=iAskControlStep) { iAskCounter=0; ulCtrlStat=AskControl(); // Запрос и обработка состояния элементов управления } iAskCounter++;