Соответствие выводов в IDE
- Войдите на сайт для отправки комментариев
Пнд, 18/10/2021 - 18:34
Добрый день.
Чего-то перестал понимать, что делаю. Некоторый проект отлаживался на макетка с mega328 в DIP корпусе. Само устройство в дальнейшем собрано на меге в корпусе tqfp32. ПО писалось в arduino IDE. Сейчас почему-то не так работает устройство.
const uint8_t pinConfig0 = 0; const uint8_t pinConfig1 = 1; const uint8_t pinConfig2 = 12; const uint8_t pinConfig3 = 11; uint8_t pinExtControl = 0; void setup() { pinMode (pinConfig0, INPUT_PULLUP); pinMode (pinConfig1, INPUT_PULLUP); pinMode (pinConfig2, INPUT_PULLUP); pinMode (pinConfig3, INPUT_PULLUP); pinMode (pinConfig4, INPUT_PULLUP); if (digitalRead (pinConfig0) && digitalRead (pinConfig1)) { pinExtControl = 1; } if (digitalRead (pinConfig0) && !digitalRead (pinConfig1)) { pinExtControl = 2; } if (!digitalRead (pinConfig0) && !digitalRead (pinConfig1)) { pinExtControl = 3; } if (!digitalRead (pinConfig0) && digitalRead (pinConfig1)) { ; } }
В итоге, не так работают условия с выводами pinConfig0 и pinConfig1. Есть подозрение, что я не так их определяю для корпуса tqfp32 в IDE? Ведь выводы 11, 12 (физически 15 и 16 выводы) отрабатывают верно, а с выводами 0 (физически 30) и 1 (физически 31) проблема...
Выводы 0 и 1 соединены с USB-TTL конвертером. Через них заливается программа. Не стоит их использовать без крайней необходимости.
Не, устройство на совсе мотдельной плате собрано. Мега прошивается через ICSP. Выводы 0 и 1 нигде кроме как входы не задействованы.
Номера выводов не имеют значения, важны номера портов МК. Пины ардуино для одних и тех портов в ДИП и в tqfp32 одинаковы - вот и проверяйте
Вот тут и затык.
Вывод под номером 30, он же PD0, а также вывод под номером 31, он же PD1 - как их обозвать в arduino IDE ?
Вот тут и затык.
Вывод под номером 30, он же PD0, а также вывод под номером 31, он же PD1 - как их обозвать в arduino IDE ?
ну какой затык то?
забиваете в гугль "atmega328 pinout" и сравниваете картинки на разные типы корпусов
Я вам и так скажу - это пины 0 и 1 на обоих ваших чипах. Ищите ошибку в другом месте
Вот тут и затык.
Вывод под номером 30, он же PD0, а также вывод под номером 31, он же PD1 - как их обозвать в arduino IDE ?
https://avatars.mds.yandex.net/get-zen_doc/3414416/pub_5fe84976e5cdbc6a9...
0 (D0) и 1 (D1) соответственно
кстати, вот эта хрень
пишется в одну строчку, если вспомнить что результат работы digitalRead() - это фактически 1 бит
Прозванивали? Может непропай или замыкание? И если схемотехника позволяет - напишите тестовый скетч с выводом на эти пины разной частоты и посмотрите. Но сначала проверьте на КЗ.
Всем спасибо.
В итоге оказался подбитый 30-й вывод. При чем один, работает как надо, если начинать работать еще с некоторыми входами, иногда его поведение неработоспособно. По закону подлости, проверка устройства началась как раз с его странного поведения.
В arduino IDE, выводы 30 и 31 в корпусе TQFP32 для меги 328p соответственно обзываются как 0 и 1.