Завтра была война ?
Это не будет работать. Почему?
Уже написал, потому-что S заглавная, я сам сделал ошибку, S заглавную поставил.
Хорошо. Тогда так...
Где ошибка в коде?
Там нет i++;
public class Test { public static void main(String args[]) { int i=0; String s=""; while (i<10) { s = s + "+"; i++; } System.out.println(s); } }
Вот здесь найди ошибку и я тебе поверю.... ))
unsigned long LaufzeitPumpe=0;
unsigned long TimerSK=0;
unsigned long TimerVisu=0;
int _Menge=0;
int MengeH=0;
int MengeSP=0;
//--------------Ablaufkette------------------------------------------------
const uint8_t START =0;
const uint8_t SOLLWERT =1;
const uint8_t DREHEN =2;
const uint8_t PAUSE1 =3;
const uint8_t PUMPE =4;
const uint8_t PAUSE2 =5;
const uint8_t GRUNDSTELLUNG =6;
void Ablauf(){
//****Visualisierung ->Schnapsmenge im Glas und Rest in Flaschen******************
if (PumpeAnAus>0){
if (Flasche[PosSoll]==0) _Menge=((millis()-TimerVisu)*50/FaktorPumpeLinks); else _Menge=((millis()-TimerVisu)*50/FaktorPumpeRechts);
MengeH=_Menge-MengeSP; MengeSP=_Menge;Menge+=MengeH;
if (PumpeAnAus==1 && InhaltFl_L>0) {InhaltFl_L-= MengeH;}
else if (PumpeAnAus==2 && InhaltFl_R>0) {InhaltFl_R-= MengeH;}}
else {TimerVisu=millis();MengeSP=0;}
if (Count_Auto <PUMPE) {Menge=0;}
PumpeAnAus=0;
//*********************************************************************************
//Zustand Belegung:
FlagGlasLeer=0; for (uint8_t i=0;i<GlasAnzahl;i++) {if (Belegung[1]==2) FlagGlasLeer+=1;} //Position mit leerem Glas
FlagGlasVoll=0; for (uint8_t i=0;i<GlasAnzahl;i++) {if (Belegung[1]==3) FlagGlasVoll+=1;} //Position mit vollem Glas
FlagKalibr=0; for (uint8_t i=0;i<GlasAnzahl;i++) {if (Belegung[1]==0) FlagKalibr+= 1; } //Position unkalibriert
//*****Reset*************
if (BetrArt==0 && Count_Auto!=GRUNDSTELLUNG) Count_Auto=START;
//************Schrittkette*********************************************************
switch (Count_Auto){
case START: { // :0
if (FlagGlasLeer>0&&(BetrArt==BA_Auto||(BetrArt==BA_HalbAuto && Impuls==TasteRot)||(BetrArt==BA_PumpeEntl))) Count_Auto=SOLLWERT;
else if (ServoRead!=Position[0]&&MenueX!=7) Count_Auto=GRUNDSTELLUNG;
break;
}
case SOLLWERT: // :1 Suche leeren Glas mit kleinster Entfernung zu Istposition
{
ServoSoll=Position[0];PosSoll=0;
for (uint8_t i=1;i<=5;i++)
{
if ((Belegung[i-1][1]==2)&&((abs(Position-ServoRead)<abs(ServoSoll-ServoRead))||(ServoSoll<=Position[0]))) {ServoSoll=Position;PosSoll=i;}
}
if (PosSoll!=0) Count_Auto=DREHEN; else Count_Auto=START;
break;
}
case DREHEN:{ // :2
ServoV=300;
if (ServoRead==ServoSoll) {TimerSK=millis();Count_Auto=PAUSE1;}
break;
}
case PAUSE1:{
if (TimerSK+ZeitPause1<millis()){
if (Belegung[PosSoll-1][1]==2) {TimerSK=millis();Count_Auto=PUMPE;} else Count_Auto=START;
}
break;
}
case PUMPE:{
if (BetrArt==BA_Auto||BetrArt==BA_HalbAuto) {
Belegung[PosSoll-1][1]=3;
if (Flasche[PosSoll]==0) LaufzeitPumpe=(FaktorPumpeLinks*Dose[PosSoll]) /50;
else LaufzeitPumpe=(FaktorPumpeRechts*Dose[PosSoll])/50; }
if ((TimerSK+LaufzeitPumpe<millis()&&BetrArt!=3)||BetrArt==0||Belegung[PosSoll-1][0]<2 ) { TimerSK=millis(); Count_Auto=PAUSE2;}
break;
}
case PAUSE2:{
if (TimerSK+ZeitPause2<millis()) {
TimerSK=millis();
if (FlagGlasLeer>0) Count_Auto=SOLLWERT; else Count_Auto=GRUNDSTELLUNG; }
break;
}
case GRUNDSTELLUNG:{
ServoV=300; ServoSoll=Position[0];
if (ServoSoll==ServoRead) Count_Auto=START;
break;
}
}
//********Ansteuerung Pumpe 1 *********************
if (Count_Auto==PUMPE && FlagPumpeAus==0 && (((BetrArt==BA_Auto||BetrArt==BA_HalbAuto)&&Flasche[PosSoll]==0) // Automatik
||(BetrArt==BA_PumpeEntl && TasterQ==TasteRot && MenueY==3))) // Entluften
{digitalWrite(Pumpe1,HIGH);PumpeAnAus=1;}
else digitalWrite(Pumpe1,LOW);
//********Ansteuerung Pumpe 2 *********************
if (Count_Auto==PUMPE && FlagPumpeAus==0 && (((BetrArt==BA_Auto||BetrArt==BA_HalbAuto)&&Flasche[PosSoll]==1) // Automatik
|| (BetrArt==BA_PumpeEntl && TasterQ==TasteRot && MenueY==4))) // Entluften
{digitalWrite(Pumpe2,HIGH);PumpeAnAus=2;}
else digitalWrite(Pumpe2,LOW);
Не надо меня проверять, я сам такой код каждый день пишу, и потом в своём форуме публикую см. https://programming.mybb.ru/, там я под ником lexx821
Вот здесь найди ошибку и я тебе поверю.... ))
Давайте весь код, это обрывок какого-то кода для Arduino. Arduino я не занимался, я занимаюсь Micro:Bit на Python см. - https://programming.mybb.ru/viewforum.php?id=13
Маловато мата у тебя в комментах
Программисты, комментирующие свой код с помощью ругательств, пишут более грамотное ПО. Чем больше ругани, тем лучше код
https://www.cnews.ru/news/top/2023-03-15_issledovanie_kod_...
Программисты любят краткость. Может поэтому тебя и не принимают.
Краткость это вот так: for(int i=0; i<=10; i++) s = s + "+";
а, так ты проникся страстью к глупому ящику для идиотов (с) 🤣
Телик не смотрю, и GEZ не плачу, это ищется на раз-два на ютубе. Я много что смотрю на ютубе.
Давайте весь код,
Весь код нельзя... коммерческая тайна....
Кстати если владеешь SPS-TIA-SCL-WinCC, то никаких проблем на сегодняшний день очень даже приличную работу найти.... от 50 000 в год.... а языки все в принципе похожи... Только познания в электронике необходимы кроме програмирования
Папа платит за себя 😎. Папа хорошо устроился - спихнул великовозрастного митрофанушку на шею налогоплательщикам, а сам тыщи загребляеть (с)🤣
Да у меня есть WinCC правда урезаная, кстати вам вот такая коробка ничего не говорит?
P.S:Пока я с вами тут болтал, паралельно небольшой код забухал https://programming.mybb.ru/viewtopic.php?id=378
Эта моя коробка, а в ней вот это: