Допустимые параметры выходного порта на Mega 2560
Я хотел бы использовать эту библиотеку на Arduino Mega2560:
https://github.com/gueei/DShot-Arduino
Однако макрос DSHOT_PORT
должен быть определен для Mega2560 здесь:
https://github.com/gueei/DShot-Arduino/blob/master/src/DShot.h
Поэтому мне нужно добавить макрос #if defined(__AVR_ATmega2560__)
к этому заголовку DShot.h
, однако мне неясно, где искать отображение порта на 2560 mega. Здесь я смотрю прямо на саму схему:
https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf
И поймите, что "порты" - это группы ввода-вывода, где контакты описываются как P? #
, ? - буква порта, а # - 0-7.
Итак, каковы мои действительные варианты? Похоже, что некоторые порты (A, C, L) вообще не закреплены, некоторые (D, J) - только несколько контактов, и почти ни один из них (кроме K / F) не использует все контакты порта. Кроме того, я вижу, что большинство этих контактов зарезервированы для некоторого типа функциональности (аналог, SPI и т. Д.). Я предполагаю, что ищу порт с доступными контактами, зарезервированными для ШИМ, например порт B (контакты 10-13 - это ШИМ). Будет ли это правильно?
@DrTarr, 👍0
Обсуждение1 ответ
Лучший ответ:
Казалось бы, для связи этой библиотеке нужен один контакт. Таким образом, на самом деле не имеет значения, имеет ли выбранный вами порт только несколько доступных контактов. Кроме того, вам все равно, что некоторые контакты могут иметь дополнительную функциональность, такую как SPI, I2C и т. Д., Если вы не планируете использовать эту функциональность.
Есть одна вещь, о которой вы должны знать: библиотека использует
инструкции по сборке in и out для доступа к порту. Эти инструкции могут
обращаться только к тем портам, которые отображаются в обычном пространстве ввода
-вывода микроконтроллера, а не к тем, которые находятся в пространстве “расширенный ввод-вывод”. В
случае ATmega2560 это означает, что вы можете использовать любой из портов A
-G, но вы не можете использовать H, J, K или L.
Спасибо за обратную связь! Похоже, я могу использовать почти любой контакт на плате., @DrTarr
- Выводы прерываний Arduino Mega 2560 и отображение портов с помощью поворотного энкодера
- Эквивалент PORTB в Arduino Mega 2560
- Не использовать прерывание восходящего края для внешних часов Arduino 2650
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
Согласно PDF-файлу, на который вы ссылаетесь, порт A сопоставляется с цифровыми контактами 22-29 на плате, порт C - с 30-37, порт C - с 42-49., @Mat
Вы не заботитесь о дополнительной функциональности вывода, если только вам не нужна эта дополнительная функциональность. Зачем вам нужен ШИМ?, @Edgar Bonet
Спасибо за разъяснение, я правильно прочитал рисунок. Я предположил, что линии, которые остановились рано, не были завершены на чертеже (функция поиска PDF подвела меня). Кроме того, что касается дополнительной функциональности, я предположил, что PWM, потому что DShot часто является заменой PWM (насколько ESC). Мешает ли мне использовать PIN другая функциональность (например, pin 22 - это сигнал SPI PB3 'MOSI')?, @DrTarr