Как правильно записать?

vvadim
Offline
Зарегистрирован: 23.05.2012

C Наступающим Новым Годом!

 

Суть вопроса. При нажатии кнопки переменным присваивается значение показаний с потенциометра. Всё работает и меня устраивает. 

if ( BUTTON_saveState == HIGH  && count == 0) 
{
  count = 1;
  Blink();
  Pos1 = PotValue;
  BUTTON_saveState = LOW; 
}
if ( BUTTON_saveState == HIGH  && count == 1) 
{
  Blink();
  count = 2;
  Pos2 = PotValue;
  BUTTON_saveState = LOW; 
} 
if ( BUTTON_saveState == HIGH && count == 2) 
{
  Blink();
  count = 3;
  Pos3 = PotValue;
  BUTTON_saveState = LOW; 
} 
if ( BUTTON_saveState == HIGH && count == 3) 
{
  Blink();
  count = 4;
  Pos4 = PotValue;
  BUTTON_saveState = LOW; 
} 
if ( BUTTON_saveState == HIGH && count == 4) 
{
  Blink();
  count = 5;
  Pos5 = PotValue;
  BUTTON_saveState = LOW; 
} 

 

Недостаточно знаний в программировании, поэтому возникает два вопроса

- как оптимизировать подобную запись

-сейчас использую пять переменных. Как записать, чтобы можно было использовать произвольное количество точек присвоения.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Оптимизировать что именно? Скорость, удобочитаемость или еще что-то? Можно например switch/case использовать - у вас несколько операций выполняется при любом условии, а одно условие присутствует во всех ветках.

Ну и наименования переменных не совсем ... комильфо.

Но это если не касаться того нюанса, что после выполнения первого условия выполняются все остальные автоматически. Встает вопрос - это баг или фича?

А про точки присвоения - не понятно.

 

P.S. С Новым годом!

Datak
Offline
Зарегистрирован: 09.10.2014

Так, кажется.





int count = 0;
int Pos[5];

...
...

if( BUTTON_saveState == HIGH  && count < 5 ) 
{
  Blink( );

  Pos[count++] = PotValue;

  BUTTON_saveState = LOW; 
} 

И да, с наступающим, конечно!

vvadim
Offline
Зарегистрирован: 23.05.2012

Gippopotam пишет:

 что после выполнения первого условия выполняются все остальные автоматически. Встает вопрос - это баг или фича?

А про точки присвоения - не понятно.

 

Присвоение значений переменным происходит только после нажатия кнопки.

Сейчас присваиваются значения пяти переменным. После присвоения значения пятой переменной идёт обработка переменных. Я хочу сделать присвоение значений потенциометра произвольному количеству переменных , допустим десяти или пятнадцати.

Могу записать хоть тридцать переменных. Как это оптимально записать? чтобы не расписывать простыни

vvadim
Offline
Зарегистрирован: 23.05.2012

Если честно, с массивами пока не работал. Попробую