Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATmega32U4, управление портом PORTF
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
peotr
Здравствуйте, уважаемые АВР-щики!

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

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

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

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

PORTF = B10101010;

получаю: 11111110

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

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

Спасибо.
ikm
Вот так формирует порты 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);

В вашем тренировочном операторе вы пытаетесь задать порты которых нет, поэтому возможно и не обрабатывается то что дальше. Попробуйте работать с каждым выходом отдельно по-битово посмотреть изменится результат?
Думаю более опытные коллеги опишут это более правильными словами.
peotr
Цитата(ikm @ Nov 16 2017, 10:59) *
***
Думаю более опытные коллеги опишут это более правильными словами.



На соседнем форуме мне подсказали, что проблема в установке фьюзов. По умолчанию злосчастные пины установлены для работы с JTAG! Проверка полностью подтвердила догадку.
Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.