Проблема с переменной в циклу

brobobo
Offline
Зарегистрирован: 23.10.2018

Добрый день, делаю проверку на ввод пина: 

 if(enterPass)                         /////////////////// Ввод Пин ////////////
      {
         lcd.setCursor(0,0);
         lcd.print("Попыток: ");
         lcd.setCursor(10,0);
         lcd.print(tryCount);
         if(flagPass){lcd.setCursor(6,1);lcd.print("****");flagPass=false;}
         
           if(isDigit(key)&&defPinCount<4)
             {
               Pin[defPinCount]=key;
               lcd.setCursor(6+defPinCount,1);
               lcd.print(key);
           
            if(defPinCount==3)
                 {
                   delay(1000);
                   lcd.clear();
                   lcd.setCursor(2,0);
                   lcd.print("Проверка...");
                   delay(1000);
                   enterPass=false;
                   tryCount--;
                   startCheck=true;
                   CheckingDefPass();
                   
                 }
               
               defPinCount++;  
            } 
                
       }

Дальше, вызывается проверка пин кода

void CheckingDefPass() 
{
  if (startCheck)
  {
    if(memcmp(Pin, PinDefault, sizeof(PinDefault))==0) 
    {
      Serial.println("Equal");
    }
    else 
    {
      Serial.println("No Equal");
      delay(200);
      lcd.clear();
      defPinCount=0;
      enterPass=true;
      flagPass=true;
      startCheck=false;
    }
   }
}

Проблема с переменной defPinCount.

При первой попытке всё идет как надо. в начале переменная равна 0. После запуска функции проверки, при завершении она становиться равной 1. помогите понять, где я косячу.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

чеснасказать, везде.   

Densl
Offline
Зарегистрирован: 28.11.2018

29: defpincount ++

brobobo
Offline
Зарегистрирован: 23.10.2018

DetSimen пишет:

чеснасказать, везде.   

Понимаю, код лапша, если не трудни ткните

brobobo
Offline
Зарегистрирован: 23.10.2018

Densl пишет:
29: defpincount ++

пробовал переносить, не помогло

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brobobo пишет:

DetSimen пишет:

чеснасказать, везде.   

Понимаю, код лапша, если не трудни ткните

Очень трудно! Практически невозможно. Ваш первый косяк - Вы выложили огрызок кода в котором нни одна переменная не описана и не проинициализирована, ни одна функция не определена. И что по нему можно сказать? Ничего! От слова "совсем".

brobobo
Offline
Зарегистрирован: 23.10.2018

ЕвгенийП пишет:

brobobo пишет:

DetSimen пишет:

чеснасказать, везде.   

Понимаю, код лапша, если не трудни ткните

Очень трудно! Практически невозможно. Ваш первый косяк - Вы выложили огрызок кода в котором нни одна переменная не описана и не проинициализирована, ни одна функция не определена. И что по нему можно сказать? Ничего! От слова "совсем".

 

int defPinCount = 0; в самом начале.

я выложил весь отрезок, где задействована эта переменная. Больше нигде она не используется. Также я выложил функцию CheckingDefPass(), которая обнуляет эту переменную. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, и прекрасно. Теперь ждите, может кто-нибудь и захочет в этом разобраться (по неопытности).

А если реально будет нужна помощь, то делается это так.

1. Подготавливаете минимальный скетч в котором чётко видна проблема (минимальный по размреру, желающих ковырять тысячистрок найдётся немного)

2. Это минимальный скетч выкладываете целиком, чтобы человек мог запустить его у себя и увидетьпроблему у себя.

Вот тогда вероятность, что Вам помогут увеличивается в разы.  А так ...

brobobo
Offline
Зарегистрирован: 23.10.2018

ЕвгенийП пишет:

Ну, и прекрасно. Теперь ждите, может кто-нибудь и захочет в этом разобраться (по неопытности).

А если реально будет нужна помощь, то делается это так.

1. Подготавливаете минимальный скетч в котором чётко видна проблема (минимальный по размреру, желающих ковырять тысячистрок найдётся немного)

2. Это минимальный скетч выкладываете целиком, чтобы человек мог запустить его у себя и увидетьпроблему у себя.

Вот тогда вероятность, что Вам помогут увеличивается в разы.  А так ...

Спасибо за совет