2015-04-06 3 views
-2

Я создал следующий простой эскиз для моего Arduino Due (работает 1.6.1) с помощью оператора по модулю:Это ошибка в Arduino modulo или это я?

int count = 0; 

void setup() { 
    Serial.begin(9600); 
} 

void loop() { 
    Serial.print("Count: "); 
    Serial.println(count); 
    Serial.print("Count/4 = "); 
    Serial.println(count/4); 
    Serial.print("Remainder = "); 
    Serial.println(count & 4); 
    Serial.println(); 
    count++; 
    if (count == 50) { 
    delay(86400000); 
    } else { 
    delay(1000); 
    } 
} 

Выход выглядит следующим образом:

Count: 0 
Count/4 = 0 
Remainder = 0 

Count: 1 
Count/4 = 0 
Remainder = 0 

Count: 2 
Count/4 = 0 
Remainder = 0 

Count: 3 
Count/4 = 0 
Remainder = 0 

Count: 4 
Count/4 = 1 
Remainder = 4 

Count: 5 
Count/4 = 1 
Remainder = 4 

Count: 6 
Count/4 = 1 
Remainder = 4 

Count: 7 
Count/4 = 1 
Remainder = 4 

Count: 8 
Count/4 = 2 
Remainder = 0 

Count: 9 
Count/4 = 2 
Remainder = 0 

Count: 10 
Count/4 = 2 
Remainder = 0 

Count: 11 
Count/4 = 2 
Remainder = 0 

Count: 12 
Count/4 = 3 
Remainder = 4 

Count: 13 
Count/4 = 3 
Remainder = 4 

Count: 14 
Count/4 = 3 
Remainder = 4 

Count: 15 
Count/4 = 3 
Remainder = 4 

Count: 16 
Count/4 = 4 
Remainder = 0 

Мое ожидание было бы, что до конца значение будет отсчитываться от 0 до 3 снова и снова. Вместо этого он чередуется между 0 в четыре раза и 4 в четыре раза.

Я полностью открыт идее, что я что-то делаю неправильно, но я не могу понять, что это такое.

+2

'&' не по модулю. '%' есть. '&' побитовое и. – hobbs

+0

@hobbs, вы должны сделать ответ, потому что это ответ на проблему. – Asheliahut

+0

@Geohut не собирается беспокоиться, потому что я проголосую за закрытие типографской ошибки. – hobbs

ответ

3

Я не вижу оператора modulo (%). Вместо этого я вижу &.

+0

Ну, это было неловко. Спасибо за помощь! –