Пин PB1 на контроллере этого типа является по совместительству счетным входом 1-го таймера (Timer/Counter1 External Counter Input). Отсюда следует самый простой алгоритм решения задачи: Timer1 программируется в режим счета внешних импульсов, а младшие 4 бита двоичного счетчика этого таймера оправляются в порт зажигать светодиоды.
Косвенным свидетельством того, что задача решается именно так, является использование для кнопки именно PB1, несмотря на то, что порядок пинов, зажигающих светодиоды при этом нарушается: PB4, PB3, PB2, PB0, где PB1 пропущен. Если бы задача решалась периодическим опросом пина с кнопкой, то не имело бы смысла устраивать чехарду с порядком пинов.
Поскольку автор топика утверждает, что он в этом деле чайник, то очевидно, что данная задача чисто учебная. В противном случае автор должен был бы знать причину, по которой ему приспичило использовать для кнопки именно PB1, но тогда бы он и сам знал, как эта задача решатся.
|