Перейти к содержанию
    

Как так?

Есть два простых куска кода первый работает, второй нет. Из-за чего это может быть? STM32.

первый

if(flag)
{
  x++; 
  if(x==50||x==100||x==150) k++;   
  if(k==1 || k==2 || k==3) flag=0;
}

 

второй

 

 if(flag)
{
  x++; 
  if(x==50||x==100||x==150) flag=0;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В первом случае flag сбрасывается первые три раза (при k==1 или 2 или 3), при остальных значениях (0,4,5 и т.д) остается неизменной.

Во втором случае flag сбрасывается всегда, независимо от переменной k.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во втором случае flag сбрасывается всегда, независимо от переменной k.

Начнем с того, что во втором случаи приведенного кода переменной k нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Какова разрядность переменных x и k ? И вообще их определение

2. Как часто вызывается код?

3. Где flag устанавливается и как часто?

Изменено пользователем alexeyv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...