Показать сообщение отдельно
Старый 19.07.2017, 21:11   #2
Dublin
Матёрый пользователь
 
Аватар для Dublin
 
Регистрация: 24.05.2010
Адрес: Херсон
Сообщений: 1,565
Вы сказали Спасибо: 871
Поблагодарили 695 раз(а) в 285 сообщениях
Dublin стоит на развилке (репутация по умолчанию)
По умолчанию

Разобрались с ситуацией. Кому интересно - объясню.
Скрытый текст:

Так как один конец диода запитан на "+", другие соответственно подключены на выводы микроконтроллера (то есть необходимо для зажигания подавать "-" (или логический 0) на выход, этот момент мимо головы и пролетел).
А теперь по циклу: Переменной изначально присваивается значение 0b10000000. Далее, в соответствии с циклом, это значение инвертируется, присваивается порту выхода (PORTB) и становится 0b01111111. 7 диод загорелся. Далее происходит побитовый сдвиг единицы в байте (0b01000000) и его инверсия с присвоением (0b10111111). Таким образом происходит поочередный перебор всех светодиодов в одном направлении. (с условием что переменная не равна 0b00000000. Если бы это было так, то 8 светодиодов последовательно бы зажглись и цикл бы закончился). В цикле else же светодиоды мигают в другую сторону.
__________________
хоп хэй лалалэй
Dublin вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА