реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ATmega32U4, управление портом PORTF, PORTF не работает как цифровой выход
peotr
сообщение Nov 16 2017, 05:23
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 12-08-05
Пользователь №: 7 587



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

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

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

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

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

PORTF = B10101010;

получаю: 11111110

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

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

Спасибо.

Сообщение отредактировал peotr - Nov 16 2017, 05:24
Go to the top of the page
 
+Quote Post
ikm
сообщение Nov 16 2017, 07:59
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 854
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



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

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


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
peotr
сообщение Nov 17 2017, 03:53
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 12-08-05
Пользователь №: 7 587



Цитата(ikm @ Nov 16 2017, 10:59) *
***
Думаю более опытные коллеги опишут это более правильными словами.



На соседнем форуме мне подсказали, что проблема в установке фьюзов. По умолчанию злосчастные пины установлены для работы с JTAG! Проверка полностью подтвердила догадку.
Спасибо.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2018 - 00:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01011 секунд с 7
ELECTRONIX ©2004-2016