Урок 4. Порти виводу в мікроконтролері Attiny13
Кожен мікроконтролер містить порти вводу-виводу, до яких можна підключити будь-який пристрій, будь то світлодіод чи кнопка. У деяких AVR мікроконтролерах деякі порти вводу-виводу можна сконфігурувати як аналогові порти вводу-виводу, наприклад, АЦП (Аналогово-цифровий перетворювач), ШІМ (Широтно-імпульсна модуляція).
Порти вводу-виводу AVR мікроконтролера ATtiny13:
Як ми бачимо на малюнку вище, у мікроконтролера ATtiny13, 6 портів вводу-виводу (PB0 – PB5) та 2 ніжки для живлення (VCC, GND). Але перша ніжка мікроконтролера Attiny13 (порт PB5), за замовчуванням не порт вводу-виводу, а скидання (Reset) мікроконтролера. Його можна переключити в порт вводу-виводу спеціальним фьюз бітом (RSTDISBL), але тоді мікроконтролер не буде підтримувати вшиване програмування (по SPI інтерфейсу).
Увага! Не встановлюйте без потреби фьюз біт RSTDISBL, в іншому випадку ваш мікроконтролер перестане програмуватися по SPI інтерфейсу (вшиване програмування).
В цифровий порт виводу можна записати два значення: логічну "0" (низький рівень) та логічну "1" (високий рівень).
Але спочатку треба сконфігурувати ніжку мікроконтролера як порт виводу командою:
Config Port(Порт) = Output
Де "порт" необхідно вказати ім'я порту, наприклад:
Config PORTB.2 = Output
Так ми сконфігуруємо 7 ніжку (PB2) мікроконтролера Attiny13 як порт виводу.
Також ми можемо сконфігурувати цілу групу портів A, B або C (і.д.). Зазвичай в одній групі портів кілька портів вводу-виводу. Приклад конфігурування групи портів як порти виводу:
Config Port(Група портів) = Output
Де "група портів" необхідно вказати букву групи, наприклад:
Config PORTB = Output
Так ми сконфігуруємо групу портів B як порти виводу.
Тепер, коли порт сконфігурований як порт виводу, можна записати в нього два значення (логічну "0" і логічну "1"), наприклад:
Port(Ім'я порту) = (Значення)
Де "Ім'я порту" необхідно вказати ім'я порту, а де "значення" 1 або 0, наприклад:
PortB.2 = 1
У групу портів можна записати значення 1 або 255, наприклад:
PortB = 255