Инструкции

Справочный раздел

В этом разделе Вы найдетё инструкции, справочники, и всевозможные хелпы по использованию программного обеспечения.

Разделы инструкций

В сети

Пользователей: 107
Из них просматривают:
Аналоги: 79. Даташиты: 6. Инструкции: 2. Новости: 8. Остальное: 1. Производители: 1. Профиль пользователя: 2. Форум: 8.
Участников: 2
Гостей: 105

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

Управление портами через регистры ATmega

Использование встроенных функций Arduino для работы с выводами очень удобно. Однако за удобство приходится платить быстродействием. В большинстве программ это не принципиально, но иногда имеет решающее значение. В таких случаях необходимо управлять портами Arduino напрямую через регистры ATmega. При этом мы не только увеличиваем быстродействие, но еще и уменьшаем размер программы.
Рассмотрим таблицу соответствия выводов Arduino портам микроконтроллера ATmega 168
 
Управление портами через регистры ATmega
 
Что мы видим:
PORTD — цифровые выводы Arduino от D0-D7;
PORTB — цифровые выводы Arduino от D8-D13;
PORTC — аналоговые выводы Arduino A0-A5 (А6-А7 доступны в Arduino Mini, Nano).
 
Для установки выводов и чтения записи данных используются следующие команды:
DDRD, DDRB, DDRC — для установки назначения выводов (направления передачи данных) соответствующих портов (0 — input, 1 — output);
PORTD, PORTB, PORTC — регистр установки данных на выводах соответствующего порта;
PIND, PINB, PINC — считывание данных всех контактов соответствующего порта.
 
Используя эти команды, можно заменить стандартные функции Arduino для управления выводами. Например:

 

// pinMode(13,INPUT)
DDRB = DDRB & B11011111
// pinMode(5,OUTPUT)
DDRD = DDRD | B00100000
// digitalWrite(7,HIGH)
PORTB = PORTB | B10000000
// digitalRead(10,HIGH)
PINB = (PINB & B00000100)>>2

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Выходные каскады УНЧ бывают разных типов и не всегда есть возможность осуществить первое включение без оконечного каскада. В этом случае возможна замена низкоомных токоизмерительных резисторов на номиналы 5-10 Ом.

Похожие инструкции