AVR: работа с портами I/O
Потихоньку начинаю осваивать микроконтроллеры архитектуры AVR. Освоил пару правил.
Работать с портами на Си надо так:
1.) Подключить библиотеку ввода/ввывода: #include <avr/io.h>
2.) Декларировать порт (чисто для удобности): #define удобное_название_OUT PORTno; #define удобное_название_IN PINno;
3.) Установить режим порта: DDRno=режим
(режима всего два: 0xFF-выход, 0x00-вход)
4.) Записать что надо в порт (например, порт=0b10000000
сделает на ногах PB0…PB6 ноль вольт, а на ноге PB7 напряжение Vcc) или прочитать из него (int x; x=PINno
внесёт в переменную x значение битов (потенциала на ножках) нужного порта).
5.) Всё! 🙂
Порты именуются заглавной латинской буквой. Количество портов зависит от марки микроконтроллера. У большинства МК порт «А» использовать не удастся, поскольку это не только ценный мех, но и ножка RESET (сброс), а также пара XTAL’ов (внешний кварц или вход для генератора строб. имульсов). Чтобы использовать его, нужно поменять фузы, но после этого МК будет сложно прошить.
P.S. Плакат на стену возле рабочего места:
Поделиться в соцсеть
Оставить комментарий