Вхідний контакт завалено імпульсами, і його вимкнено
Що пише ArduPilot:
- Pin N disabled (ISR flood)
- Retrying pin N after ISR flood
- ISR flood on pin N
Деякі входи (датчик обертів, PWM-далекомір, провід зворотного зв'язку камери, кнопка) будять процесор на кожному фронті свого сигналу. Контакт, названий у повідомленні, видав понад 10 000 фронтів за 100 мс — достатньо, щоб усе інше лишилося без процесорного часу, тож ArduPilot перестав його слухати («ISR flood on pin N»). Доки апарат дизармовано, він пробує знову кожні 10 секунд («Retrying pin N…»), а армування заборонене, доки контакт вимкнено.
Що робити: найімовірніше спершу
Контакт налаштовано як вхід, але до нього нічого не під'єднано, тож він ловить шум.
ПеревіртеПошукайте номер контакту з повідомлення в
RPM1_PIN,RNGFND1_PIN,CAM1_FEEDBAK_PINі параметрах BTN_PINn.ВиправтеЗадайте параметру контакту тієї можливості, якою не користуєтеся, -1 і перезавантажте.
Сигнальний провід іде поруч із проводами моторів чи регуляторів, або датчик не має спільної землі з платою.
ПеревіртеПотік імпульсів починається, коли працюють мотори чи під'єднано батарею, а не від самого USB.
ВиправтеПрокладіть провід інакше або екрануйте його й з'єднайте землі.
Сигнал зашвидкий для такого входу.
ВиправтеВізьміть джерело, яке ArduPilot читає інакше: оберти з телеметрії регуляторів замість імпульсного контакту.
Якщо потік імпульсів стається, коли апарат заармовано, контакт лишається вимкненим до кінця польоту, а також виникає внутрішня помилка «gpio_isr».
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
RPM1_PIN | Input pin number |
RNGFND1_PIN | Rangefinder pin |
CAM1_FEEDBAK_PIN | Camera feedback pin |
BTN_PIN1 | First button Pin |
Де це зробити:Планувальник плати й підключення
Код, який це надсилає
Pin N disabled (ISR flood)
libraries/AP_HAL_ChibiOS/GPIO.cpp GPIO::arming_checks() · Відкрити в ArduPilot Copter-4.7.1
Retrying pin N after ISR flood
libraries/AP_HAL_ChibiOS/GPIO.cpp GPIO::timer_tick() · Відкрити в ArduPilot Copter-4.7.1
ISR flood on pin N
libraries/AP_HAL_ChibiOS/GPIO.cpp GPIO::timer_tick() · Відкрити в ArduPilot Copter-4.7.1