Перейти к содержанию

ATmega32U4, управление портом PORTF

Здравствуйте, уважаемые АВР-щики!

В работе с ATmega32U4 возникла необходимость использовать порт F цифровым выходом. Настраивал следующим образом:

Первый вариант:
DDRF = B11111111;

Второй вариант:
DDRF = DDRF | B11110011; (на всякий случай, в нём нет PF2, PF3)

делаю тренировочный оператор:

PORTF = B10101010;

получаю: 11111110

В ходе анализа пришёл к выводу, что PF0 и PF1 работают правильно, а вот, что старше, - тупо пишет "1".

Что за хрень, ёрш его медь?..

Спасибо.
Изменено пользователем peotr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вот так формирует порты CAVR : выход на единицу.
Порты F2 и F3 не описываются,

// Port F initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit1=Out Bit0=Out
DDRF=(1<<DDF7) | (1<<DDF6) | (1<<DDF5) | (1<<DDF4) | (1<<DDF1) | (1<<DDF0);
// State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit1=1 Bit0=1
PORTF=(1<<PORTF7) | (1<<PORTF6) | (1<<PORTF5) | (1<<PORTF4) | (1<<PORTF1) | (1<<PORTF0);

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(ikm @ Nov 16 2017, 10:59) <{POST_SNAPBACK}>
***
Думаю более опытные коллеги опишут это более правильными словами.



На соседнем форуме мне подсказали, что проблема в установке фьюзов. По умолчанию злосчастные пины установлены для работы с JTAG! Проверка полностью подтвердила догадку.
Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация