peotr 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 (изменено) · Жалоба Здравствуйте, уважаемые АВР-щики! В работе с ATmega32U4 возникла необходимость использовать порт F цифровым выходом. Настраивал следующим образом: Первый вариант: DDRF = B11111111; Второй вариант: DDRF = DDRF | B11110011; (на всякий случай, в нём нет PF2, PF3) делаю тренировочный оператор: PORTF = B10101010; получаю: 11111110 В ходе анализа пришёл к выводу, что PF0 и PF1 работают правильно, а вот, что старше, - тупо пишет "1". Что за хрень, ёрш его медь?.. Спасибо. Изменено 16 ноября, 2017 пользователем peotr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ikm 3 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Вот так формирует порты 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 0 17 ноября, 2017 Опубликовано 17 ноября, 2017 · Жалоба *** Думаю более опытные коллеги опишут это более правильными словами. На соседнем форуме мне подсказали, что проблема в установке фьюзов. По умолчанию злосчастные пины установлены для работы с JTAG! Проверка полностью подтвердила догадку. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться