перебор состояний выводов с помощью двоичного числа

Lictor
Offline
Зарегистрирован: 01.10.2015

Всем доброго дня, такой вопрос: нужно перебрать все сосотояния для 4 выводов Ардуино. Решил сделать это записывая биты как состояние вывода. Написал такой код, но почему-то на выводах упорно одни нули. Не могу понять в чем проблема.

 

byte massa = B0;

const int buttonPin1 = 13;     
const int buttonPin2 = 12;     
const int buttonPin3 = 11;    
const int buttonPin4 = 10;  

unsigned long previousMillis ;

void setup() {
  
  Serial.begin(9600); //монитор порта

  pinMode(buttonPin1, OUTPUT);
  pinMode(buttonPin2, OUTPUT);
  pinMode(buttonPin3, OUTPUT);
  pinMode(buttonPin4, OUTPUT);

}
void loop() {
  
  unsigned long currentMillis = millis();    
 if (currentMillis - previousMillis > 1000) {
                   previousMillis = currentMillis;
if ( massa <= B1111 ) {
digitalWrite( buttonPin1, bitRead( massa , 0 ));
digitalWrite( buttonPin2, bitRead( massa , 1 ));
digitalWrite( buttonPin3, bitRead( massa , 2 ));
digitalWrite( buttonPin4, bitRead( massa , 3 ));
Serial.print(buttonState1);
  Serial.print(buttonState2);
    Serial.print(buttonState3);
    Serial.print(buttonState4);
if ( massa == B1111 ) {
  massa = B0;
  }
}
    }
   }


 

Lictor
Offline
Зарегистрирован: 01.10.2015

В строках 30 - 33 записано

 Serial.print(digitalRead(buttonPin1));
     Serial.print(digitalRead(buttonPin2));
      Serial.print(digitalRead(buttonPin3));
       Serial.print(digitalRead(buttonPin4));
 
опечатался
SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

а что нано-то ?

Lictor
Offline
Зарегистрирован: 01.10.2015

Дичайше прошу пардона, разобрался сам. Сколько раз уже было: сутки сижу ничего не получается, только создам тему и тут озарение.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

так где рабочий код?