Как заменить конструкцию типа
shiftOut(dataPin, clockPin, MSBFIRST, RazrDisplay);
на
for (byte c = 0; c < 8; c++) {
digitalWrite( dataPin , !!(RazrDisplay & (1 << c)));
delayMicroseconds( 1 );
digitalWrite( clockPin , HIGH);
delayMicroseconds( 1 );
digitalWrite( clockPin , LOW);
delayMicroseconds( 1 );
}
Нужно, чтобы ужать код на несколько байт. Приведённая замена не работает. Что я делаю не так?
И второе: целую неделю не мог попасть на сайт. Только у меня проблемы? С телефона и сейчас не заходит.
Замена shiftOut
Замена shiftOut
Не работал около суток ....с неделю назад.....посмотрите по сообщениям пользователей...с телефона сейчас проверю..)))seri0shka писал(а): 01 май 2018, 20:58И второе: целую неделю не мог попасть на сайт. Только у меня проблемы? С телефона и сейчас не заходит.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Замена shiftOut
Я тоже не мог попасть, стёр кеш браузера и вроде нормально. Несколько раз было, чтобы попасть в форум нужно было сперва зайти на сайт. Напрямую не мог.
Отправлено спустя 24 секунды:
Сейчас пишу с телефона.
Отправлено спустя 24 секунды:
Сейчас пишу с телефона.
Замена shiftOut
Проверил с телефона, все работает.
Кэш браузера желательно периодически чистить, особенно если что то не работает)))
Кэш браузера желательно периодически чистить, особенно если что то не работает)))
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
Замена shiftOut
Оказывается, правильно так:
for (byte c = 0; c < 8; c++) {
// digitalWrite( dataPin , !!(RazrDisplay & (1 << c))); // это для LSBFIRST
digitalWrite(dataPin, !!(RazrDisplay & (1 << (7 - с)))); // это правильный вариант для MSBFIRST
delayMicroseconds( 1 );
digitalWrite( clockPin , HIGH);
delayMicroseconds( 1 );
digitalWrite( clockPin , LOW);
delayMicroseconds( 1 );
}
for (byte c = 0; c < 8; c++) {
// digitalWrite( dataPin , !!(RazrDisplay & (1 << c))); // это для LSBFIRST
digitalWrite(dataPin, !!(RazrDisplay & (1 << (7 - с)))); // это правильный вариант для MSBFIRST
delayMicroseconds( 1 );
digitalWrite( clockPin , HIGH);
delayMicroseconds( 1 );
digitalWrite( clockPin , LOW);
delayMicroseconds( 1 );
}
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей