ardino mega и функция управления портами DDR и PORT

mitos
Offline
Зарегистрирован: 11.12.2011

День добрый.

Приобрел мегу и начал потихоньку разбираться читая чужие программы.

В одной из них увидел возможность управлять портами, но в примере используется arduino uno,

а я хочу использовать отличные от уно цифровые выходы.чтоб не занимать pwm.

Не нашел какие именя портов соответствуют выходам на 22 ноге и выше .

Был бы благодарен если поможет кто.

Вот кусок когда с которого я хочу взять пример.

void setup()
{
DDRD=B11111111; // пины порта D и B обозначаем выходными
DDRB=B111111;

whoim
Offline
Зарегистрирован: 03.11.2011

 Насколько я понима, ардуино тут ужене при чем. Берем даташит на микроконтроллер и там у нас все расписано.

Вроде как код Ваш делает digitalWrite(X,1) где X это все пины PD и PB? Или так задается pinMode?

B11111111 насколько я понял означает BIT, то есть прямое задание битов в байте, который отдается DDR

step962
Offline
Зарегистрирован: 23.05.2011

mitos пишет:

void setup()
{
DDRD=B11111111; // пины порта D и B обозначаем выходными
DDRB=B111111;

DDRx - это Data Direction Register. x здесь заменяется именем соответствующего порта (A,B,C,D,... - в зависимости от модели МК). Устанавливая определенные биты порта в 1, вы программируете соответствующие выводы МК как выходные, а сбрасывая в 0 - как входные. Кое-что об основах можно почитать здесь.

Если вы не собираетесь опускаться ниже уровня абстрагирования, принятого в Arduino IDE, то лучше использовать функцию pinMode().

Ну, а собсно по вопросу распиновки - тута, например. 

mitos
Offline
Зарегистрирован: 11.12.2011

step962, большое спасибо.

если я правильно понял то в моем случае выводы с 22 по 29 это порт A? 

step962
Offline
Зарегистрирован: 23.05.2011

 Судя по приведенной ссылке - да. Но я бы поискал еще пару источников информации об этом:

"Arduino mega pinout" - в Google (а еще лучше не Pinout, а PinMapping) и

"Arduino mega распиновка" - в Yandex.

Например, эта страница.

И сравнил бы распиновку с приведенной по указанной мной ссылке.

На всякий случай.