чет/нечет
- Войдите на сайт для отправки комментариев
Чт, 08/02/2018 - 18:10
Прошу помощи, чет туплю.
Есть некий счетчик импульсов, например number. Результат счета (1 2 3 4 5 6 ...) нужно вывести на индикатор через один, в виде 1а 1в 2а 2в 3а 3в ... Понимаю что надо просто поделить пополам, будет например number2. Но как определить чет/нечет для второй переменной, например chet ? Туплю.
%2 ?
Но как определить чет/нечет
Можно взять самый младший разряд от переменной: number & 0x1
// список выводов Arduino для подключения к разрядам a-g семисегментного индикатора int pinH[8]={13,A4,2,4,3,A5,10,5}; int pinL[8]={A1,A3,9,7,8,A2,A0,6}; int pinIN=11; // значения для вывода цифр 0-9 byte numbers[15] = { B00000011, B10011111, B00100101, B00001101, B10011001, // 0 1 2 3 4 B01001001, B01000001, B00011111, B00000001, B00001001, // 5 6 7 8 9 B00000010, B10011110, B00100100, B00001100, B10011000 // 10 11 12 13 14 }; byte numA=B00010001; byte numB=B11000001; // переменная для хранения значения текущей цифры int number=0; // семисегментного индикатора // переменная для хранения текущей пары int chet=0; void setup() { // Сконфигурировать контакты как выходы for(int i=0;i<8;i++) { pinMode(pinH[i],OUTPUT); pinMode(pinL[i],OUTPUT); digitalWrite(pinH[i],HIGH); digitalWrite(pinL[i],HIGH); } digitalWrite(pinIN,HIGH); // подтяжка на входе } void loop() { number=(number+1)%15; showNumber(number/2); // печать цифрыdelay(1000); } // функция вывода цифры на семисегментный индикатор void showNumber(int num) { for(int i=0;i<8;i++) { if(bitRead(numbers[num],7-i)==LOW) // зажечь сегмент digitalWrite(pinH[i],LOW); else // потушить сегмент digitalWrite(pinH[i],HIGH); } }/10
%10
а почему на 10 делить? Они же чередуются через 1. Тогда уж на 2 ?
О, понял. Спасибо
% оператор
Возвращает остаток от деления одного целого (int) операнда на другой.
пошел дальше ваять